22 messaggi dal 07 gennaio 2006
Allora da quanto ho capito, per l'autenticazione, registrazione e cose varie bisogna derivare la classe MembershipProvider e fare l'override di tutti i metodi.
Quindi per esempio:


Controllo LOG IN --> MyMemberProvider : MembershipProvider --> Data Base

Allora ho derivato la classe Memebership e creato la MyMemberProvider
(tutti i metodi ritornato una excepion "not impement" tranne validateUser che per il momento ritorna esclusivamente TRUE e Initialize)

all'interno del mio web.config ho questi settaggi


  ...
  <connectionStrings>
    <add name="AspNetMembershipDatabase" 
  connectionString="Data 
  Source=localhost;Initial Catalog=aspnetdb;User ID=sa"/>
  </connectionStrings>
  ...
  ...
  <membership defaultProvider="MyMemberProvider">
      <providers>
        <add connectionStringName="AspNetMembershipDatabase" enablePasswordRetrieval="false"
        enablePasswordReset="true" requiresQuestionAndAnswer="false"
        applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"
        description="Stores and retrieves membership data from the local Microsoft SQL Server database"
        name="MyMemberProvider" type="MyMemberProvider" />
     </providers>
  </membership>



aspnetdb è un database che ho creato direttamente con aspnet_regsql.exe

L'applicazione gira e infatti con qualisiasi informazione inserisca nel controllo login vengo autenticato.

Quello che non capisco è perché ho dovuto creare quel db con quel programma???
Se io adesso cambio il DB all'interno della connection string facendolo puntare ad un'altro...ovviamente non va niente....

Come devo fare per interfacciarmi con un altro DB???
Se usi aspnet_regsql.exe crei un database di default che il MembershipProvider di default sa utilizzare. Nel momento in cui tu crei un tuo MyMemberProvider decidi di non utilizzare più quel databaase e neanche quella stringa di connessione (non è detto che tu voglia andare su database).
Quindi dopo aver creato la classe la implementi in modo che questa vada sul tuo db, chiami le tuo stored procedure indipendentemente dal db/membership di default

Ciao

Il mio blog
Homepage
22 messaggi dal 07 gennaio 2006
Ok mi hai convinto ;).

Allora metti che uno decida di non utilizzare i controlli Login,LoginView..ecc non gli serve a niente creare un nuovo provider derivandolo da MembershipProvider...giusto?

vale lo stesso discorso anche per i roles?!?!
del tipo anche qui se non utilizzo il provider di default....devo derivare la classe base e fare l'override dei metodi??
Modificato da Lambe il 17 gennaio 2006 14.28 -
Eh no, è proprio questo il bello. Tutti questi controlli si basano su classi astratte che il provider di default o il tuo implementano.
Leggi l'articolo di oggi
http://www.aspitalia.com/articoli/asp.net2/provider_model_pattern.aspx
e sì, stessa cosa anche per i roles, ma il lavoro è minimo rispetto alla versione 1.x

Se decidi di non usare il LoginView l'aver implementato un membership provider ti modella comunque ad un approccio più ordinato ed inoltre ti permette di lavoro sempre allo stesso modo. Per creare un utente per esempio ti basta usare la classe Membership indipendentemente dal provider che stai usando.
E' molto improbabile che non usi niente di ASP.NET 2 che sia basato sui provider. Fare qualcosa di totalmente diverso secondo me non ha senso.

Ciao

Il mio blog
Homepage
22 messaggi dal 07 gennaio 2006
No infatti è sicuro che mi appoggero alla classe derivata che ho implemento si ha un codice + logico e pulito.

Era solo per capire meglio la storia.

Ok tu dici che le roles sono più semplici...

allora vediamo

quando l'utente, tramite controllo Login, inserisce User e Password e conferma, viene generato l'evento ValidUser della mia classe derivata.

Mi faccio tutti i miei trip del caso per estrarre i valori giusti ed reornare true o false.
A sua volta il controllo Login effettuerà per me il FormAutenthication, e mi reindirizza alla default page del controllo.

Dove si va ad inserire il discorso dei roles???
Non devi intervenire sull'evento ValidUser ma anche per i roles esiste un provider RoleProvider
E' un po' lunga da spiegare ma con l'articolo di oggi e un altro che uscirà a breve verrà introdotto questo argomento

Ciao

Il mio blog
Homepage
22 messaggi dal 07 gennaio 2006
Ok, thx a lot

Aspetto con ansia, intento provo a sbatterci un pò la testa

bye
lmb

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.