109 messaggi dal 26 febbraio 2003
Salve, vorrei aggiungere due campi personali agli utenti del mio sito web senza usare il profile e vorrei sapere se stò facendo bene:

- devo creare una mia classe "MyMembershipUser" derivandola da MembershipUser aggiungendo le due property ed aggiornando il costruttore

- devo crearmi un mio MembershipProvider derivandola da SqlMembershipProvider ed implementare i metodi di cui ho bisogno;

- devo creare le tabelle sul database SQL Server.

Stò facendo bene?
Pressappoco sì. Ma ti consiglio di derivare direttamente da "MembershipProvider" e utilizzare solo i metodi che ti interessano, scrivendo la tua DAL per l'accesso effettivo alla tua tabella dove memorizzerai i dati.

Un ulteriore consiglio: utilizza anche i "Profile", ma fallo utilizzando un altro tuo provider personalizzato che vada a prendere i dati dalla stessa tabella utilizzata sopra.

Dopo il primo sforzo nella costruzione dei vari provider vedrai le comodità nell'utilizzo

Ciao

Andrea Zani
Undicesimo comandamento: NON utilizzare Explorer 6
109 messaggi dal 26 febbraio 2003
Grazie per la risposta e per il consiglio relativo al Profile  ... prima di partire un'ultimo dubbio  ...

Con le classi Membership e MembershipUser creo, aggiorno, cancello, ..., valido gli utenti ma ora creandomi una MyMembershipProvider ed una MyMembershipUser devo sempre passare per la Membership classica (es. Membership.GetUser(...)) e sostituire la MembershipUser con la mia classe personalizzata
No, è questo il bello! Tu continuerai ad utilizzare la memebrship classica, con tutti i suoi webcontrol, ma sarà il tuo provider a lavorare dietro le quinte. Un giorno dovrai cambiare gestione dell'autenticazione/utenti, ti sarà sufficiente modificare quel provider e l'applicazione continuerà a funzionare senza la minima modifica di codice. Comodo, no?
Ciao

Andrea Zani
Undicesimo comandamento: NON utilizzare Explorer 6
109 messaggi dal 26 febbraio 2003
Ho provato ad usare il mio provider per la validazione (senza cambiare una riga di codice) e funziona correttamente; ho poi provato a farmi restituire tutti gli utenti:

MembershipUserCollection coll = Membership.GetAllUsers();

1 prova) foreach (MembershipUser user in users)
...

2 prova) foreach (MyMembershipUser user in coll)
...

Domanda: siccome la mia MyMembershipUser ha delle proprietà custom non mi basta più configurare solo il mio provider personalizzato nel web.config ma devo anche sostituire la MembershipUser classica con quella personale?

Ciao e questo dovrebbe essere proprio l'ultimo dubbio
No, come ti ho detto non ti serve creare una Membership personalizzata per le tua proprietà custom. E' per questo che nella mia prima risposta ti avevo suggerito di crearti anche un profile personalizzato, in questo modo le proprietà custom le potevi riprendere direttamente dall'API Profile

Ciao

Andrea Zani
Undicesimo comandamento: NON utilizzare Explorer 6

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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC