Le Membership API permettono di memorizzare solo alcuni dati di un utente, ovvero quelli necessari per l'identificazione (UserName, password, email, ecc.).
Una delle operazini più comuni quando si vuole registrare un nuovo utente è aggiungere alti dati come il nome, l'età, il sesso e altro ancora. La gestione di questi dati è affidata invece alle Profile API.
Quando si usa il controllo CreateUserWizard per creare l'utente, si possono aggiungere diversi campi per inserire anche i dati che vanno nel suo profilo. Il controllo salva automaticamente l'utente, ma poichè Profile API e Membership API non sono completamente integrate, il compito di salvare il profilo contestualmente alla creazione dell'utente è compito nostro.
Innanzitutto si abilita il Profile nel web.config aggiungendo un campo per l'età:
<profile enabled="true">
<properties>
<add name="Age" type="Int32"/>
</properties>
</profile>Successivamente si trasforma in template lo step della creazione dell'utente aggiungendo il nuovo campo:
<asp:createuserwizard id="CreateUserWizard1" runat="server" oncreateduser="CreateUserWizard1_CreatedUser" >
<wizardsteps>
<asp:createuserwizardstep id="CreateUserWizardStep1" runat="server">
<contenttemplate>
...
<tr>
<td align="right"><asp:label id="Label1" runat="server" associatedcontrolid="Answer">Age</asp:label></td>
<td><asp:textbox id="txtAge" runat="server"></asp:textbox></td>
</tr>
<tr>
<td colspan="2"><asp:label id="Label1" runat="server" associatedcontrolid="Answer">Age</asp:label></td>
<td><asp:textbox id="txtAge" runat="server"></asp:textbox></td>
</tr>
...
</contenttemplate>
</asp:createuserwizardstep>
</wizardsteps>
...
</asp:createuserwizard>Infine si crea un delegate per la gestione dell'evento CreatedUser, che genererà il nuovo profilo riempiendo il campo con il valore inserito nella textbox.
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
// creiamo il profilo vuoto per la prima volta
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);
// popoliamo con i valori presi dalla TextBox
p.Age = Convert.ToInt32(((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txtAge")).Text);
// salviamo il profilo in maniera esplicita
p.Save();
}Nota: Questo script contiene un allegato.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
ciao, complimenti per questo script.. veramente ottimo (sarà che forse era esattamente ciò che serviva a me!!)volevo cmq chiedere quali altri tipi di ...
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download



ciaomi associo ai complimenti di skater.la mia domanda è questa.una volta salvato il profilo come faccio a reuperarlo da un'altra pagina?ti illustro ...
Continua »»» | Rispondi »»»