887 messaggi dal 21 marzo 2008
Ciao a tutti
sto per la prima volta utilizzando i provider membership ecc su un database sqlserver.
Ho creato una soluzione con all'interno un sito web e una libreria di classi.
Nella libreria ho inserito anche le classi per il provider personalizzato.
Non deve personalizzare tutti i metodi dei provider Membership, Profile e Role
Se provo ad eliminare i metodi che non personalizzo mi da errore in compilazione:

"Errore 1
'mcLibrary.Providers.myMembershipProvider' non implementa il membro astratto ereditato 'System.Web.Security.MembershipProvider.ValidateUser(string, string)'"

se invece li lascio e provo ad eseguire un login ricevo questo errore:

"NotImplementedException non è stata gestita dal codice utente
Operazione o metodo non implementato."

sull'istruzione:

throw new NotImplementedException();
public override bool ValidateUser(string username, string password)
{
throw new NotImplementedException();
}
Come devo fare per personalizzare solo alcuni metodi e utilizzare il funzionamento di default per gli altri?

Altro problema, con il provider di default di sqlserver riuscivo ad accedere a 'Configurazione di ASP:NET', ora con il provider personalizzato ricevo questo errore:
"Si è verificato un problema con l'archivio dati selezionato. È possibile che il nome o le credenziali del server non siano valide o che le autorizzazioni non siano sufficienti. È inoltre possibile che la funzione di gestione dei ruoli non sia abilitata. Fare clic sul pulsante sotto per accedere a una pagina in cui scegliere un nuovo archivio dati.

Il seguente messaggio può essere utile per la diagnosi del problema: Operazione o metodo non implementato."

Questo è il web.config:

<connectionStrings>
<add name="myConnection" connectionString="Data Source=DEV-PC;Initial Catalog=mydb;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<!-- PROVIDERS -->
<membership defaultProvider="myMembershipProvider">
<providers>
<clear/>
<add name="myMembershipProvider" type="mcLibrary.Providers.myMembershipProvider, mcLibrary" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="XXX" passwordFormat="Hashed" connectionStringName="myConnection" />
</providers>
</membership>
<profile defaultProvider="myRoleProvider" enabled="true">
<providers>
<clear/>
<add name="myProfileProvider" type="mcLibrary.Providers.myProfileProvider, mcLibrary" applicationName="XXX" connectionStringName="myConnection" />
</providers>
</profile>
<roleManager enabled="true" defaultProvider="myRoleProvider">
<providers>
<clear/>
<add name="myRoleProvider" type="mcLibrary.Providers.myRoleProvider, mcLibrary" applicationName="XXX" connectionStringName="myConnection" />
</providers>
</roleManager>
<!-- fine PROVIDERS -->
Perchè ora non riesco più ad accedere alla configurazione?
Grazie mille
383 messaggi dal 23 aprile 2007
ti rispondo per la prima parte: se vuoi customizzarti il provider devi implementare tutti i metodi necessari poichè la classe base è astratta e quindi non può essere istanziata(quindi non puoi richiamarne i metodi)... la spiegazione forse non è didattica ma il senso dovrebbe essere quello :D

questo:
http://msdn.microsoft.com/en-us/library/6tc47t75(v=vs.80).aspx
è un ottimo punto di partenza.

Ciao
Sergio
21 messaggi dal 17 novembre 2006
historyX ha scritto:
ti rispondo per la prima parte: se vuoi customizzarti il provider devi implementare tutti i metodi necessari poichè la classe base è astratta e quindi non può essere istanziata(quindi non puoi richiamarne i metodi)... la spiegazione forse non è didattica ma il senso dovrebbe essere quello :D

questo:
http://msdn.microsoft.com/en-us/library/6tc47t75(v=vs.80).aspx
è un ottimo punto di partenza.

Ciao
Sergio


non puoi cancellare i metodi, ma puoi non utilizzarli.
a volte basta solo la funzione di validazione delle credenziali.

siccome hai anche un roleprovider modificato, alcune funzionalità della "configurazione asp.net" non è disponibile, e ottieni l'errore.

Prova ad aggiungere le tabelle di default riguardo ai ruoli, e usare il roleprovider di default. Intanto ti permette di testare l'autenticazione col tuo membership provider.

Considera che però se non implementi le funzioni di creazione, modifica e aggiornamento credo sia impossibile utilizzare la configurazione di asp.net.

Come mai hai deciso di customizzare i provider?
887 messaggi dal 21 marzo 2008
Grazie per l'aiuto
Ho deciso di customizzare i provider perchè leggevo che quelli di default sono un pò limitati e per personalizzare la registrazione e l'autenticazione. Inoltre, vorrei rendere il provider indipendente dal tipo di db ed utilizzare EF.
Ancora grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.