Domanda sulla creazione di un utente

giovedì 07 settembre 2006 - 10.58

Giovanni_3478 Profilo | Senior Member

Ciao

Ho provato ad utilizzare il controllo CreateUserWizard per creare nuovi utenti.

Gli utente vengono creati e viene creato un nuovo database : ASPNETDB.MDF.

OK.



Ora ho aggiunto altri campi al controllo CreateUserWizard
come nome cognome numtelefono e via dicendo.

Ma, una volta creato l'utente dal browser,
nel database vengono aggiunti solo i dati
nomeutente, password, confemapassword, email, password, domanda e risposta segreta
(insieme a una moltitudine di altri dati )
e non vengono aggiunti i dati relativi ai campi che ho aggiunto nel controllo
CreateUserWizard.


Per salvare dei dati aggiuntivi
ho creato una tabella users.

Il problema sta nel fatto che la mia tabella users
deve avere lo stesso userId della tabella aspnet_Users.

Con Membership.GetUser.ProviderUserKey
posso intercettare l'userId dell'utente creato
ma lo posso fare solo all'evento continueButtonClick
di createUserWizard.

Io invece voglio salvare tutto alclick su Crea Utente.

Come posso procedere per fare questo?

Ciciu Profilo | Senior Member

Scusa la domanda stupida, ma... Perché non utilizzi la classe Profile disponibile in ASP.NET ?
Nel web.config devi solo aggiungere le chiavi che vuoi, e poi puoi memorizzare/variare i dati in maniera decisamente banale...
Un buon articolo che trovi su questo sito è quello di Matteo Raumer :

http://www.dotnethell.it/articles/ASP.NET2-Profile.aspx

Ciao - FabioG


Fabio G

Giovanni_3478 Profilo | Senior Member

Sono 20 le informazioni aggiuntive che dovrei salvare.

E' consigliabile salvarle nel profilo
oppure è sconsigliato salvare un numero così alto di informazioni nel profilo?

Ciciu Profilo | Senior Member

Secondo me, non è un gran numero.
Io utilizzerei la classe profile, molto più comoda per il mantenimento dei dati dell'utente...
Ciao - Fabio

Fabio G

Giovanni_3478 Profilo | Senior Member

Mi piacerebbe sapere come la pensa a riguardo Matteo Raumer (FreeTeo)

Ciciu Profilo | Senior Member

Credo sia meglio inviargli una mail...
Fabio G

freeteo Profilo | Guru

avete chiamato? eccomi qui appena ho potuto....
Allora direi innanzitutto che la sezione Profile di asp.net dovrebbe essere usata per memorizzare qualcosa che deve persistere con il tempo, ovvero quando l'utente cessa la sessione invece di salvare i dati noi possiamo usare questi oggetti gia fatti che svolgono tutto il lavoro al posto nostro.
Se le cose che devi usare nel Profile sono solo relative alla sessione e non ha senso che al successivo accesso vengano ripristinate, allora Session va benissimo ma se usi cose come le personalizzazioni della pagina, l'ultimo accesso etc...allora ha senso salvarle su db e quindi ecco che Profile è lo strumento giusto.

Un'altra cosa importantissima è che usando il profile lui crea delle classi tipizzate nell'utilizzo delle voci e quindi non puoi sbagliare confronti o altro , perche non devi fare nessun cast e gli errori ti verrebbero gia fuori in fase di compilazione.
Per non parlare del fatto che viene caricato solo quello che serve senza caricare l'intero ogetto Session etc...

Per tutti questi motivi nel caso medio delle applicazioni io consiglio sempre il Profile, per essere tranquilli con la lettura/scrittura di tutte quelle proprieta' dell'utente che mi serve gestire.


A parte tutte queste chiacchiere, nel tuo caso Giovanni, mi sento di dire che 20 non è troppo, poi dipende che tipo di dati salvi, ma se sono tipi classici tipo booleani , stringhe interi etc...allora non ci sono problemi, se sono byte o altre cose piu' pesanti allora devi fare i conti con 1po di rallentamento ma cmq sia usa il profile e puoi andare via tranquillo.


* L'unica cosa da tenere in considerazione è che se distribuisci a hosting pubblici come ad esempio aruba, non ti lasciano agganciare al volo il file .mdf ovvero il db di sql2005 che vinee invece generato da visual studio quando istanzi il profile in fase di designa dell'applicazione.
Quindi se sai gia che distribuirai l'applicazione in server che non sono tuoi o cmq che non hanno questa funzionalita' allora devi pensare ad usare access e il "sampleaccessprovider" che trovi nel toolkit di asp.net
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Giovanni_3478 Profilo | Senior Member

Sei stato chiarissimo

Grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5