Cenni preliminari sui controlli di accesso di ASP.NET

Aggiornamento: novembre 2007

I controlli di accesso di ASP.NET forniscono una soluzione di accesso affidabile per le applicazioni Web ASP.NET senza richiedere alcuna programmazione. Per impostazione predefinita, i controlli di accesso vengono integrati con l'appartenenza e l'autenticazione basata su form di ASP.NET al fine di automatizzare l'autenticazione utente per un sito Web. Per informazioni sull'utilizzo dell'appartenenza ASP.NET con l'autenticazione basata su form, vedere Introduzione all'appartenenza.

Per impostazione predefinita, i controlli di accesso ASP.NET gestiscono testo normale mediante il protocollo HTTP. Se si desidera una maggiore sicurezza, utilizzare HTTPS con la crittografia SSL. Per ulteriori informazioni su SSL, vedere Configuring SSL on a Web Server or Web Site (IIS 6.0) nella documentazione relativa a IIS (informazioni in lingua inglese).

Nota:

I controlli di accesso potrebbero non funzionare correttamente se Method della pagina Web ASP.NET viene modificato da POST (impostazione predefinita) a GET.

In questo argomento vengono descritti i controlli di accesso ASP.NET e vengono forniti i collegamenti alla documentazione di riferimento del controllo.

Controllo Login

Il controllo Login visualizza un'interfaccia utente per l'autenticazione dell'utente. Tale controllo contiene caselle di testo per l'immissione del nome utente e della password e una casella di controllo che consente agli utenti di indicare se desiderano memorizzare la propria identità nel server utilizzando l'appartenenza ASP.NET ed essere automaticamente autenticati alla successiva visita al sito.

Il controllo Login include inoltre proprietà per la visualizzazione personalizzata, per i messaggi personalizzati e per i collegamenti ad altre pagine in cui gli utenti possono modificare la propria password o recuperare una password dimenticata. Può essere utilizzato come controllo autonomo in una pagina principale o in una home page oppure in una pagina dedicata all'accesso.

Se il controllo Login viene utilizzato con l'appartenenza ASP.NET, non è necessario scrivere codice per eseguire l'autenticazione. Se, tuttavia, si desidera creare una propria logica di autenticazione, è possibile gestire l'evento Authenticate del controllo Login e aggiungere un codice di autenticazione personalizzato.

Controllo LoginView

Il controllo LoginView consente di visualizzare informazioni differenti a seconda che gli utenti siano anonimi o connessi. Il controllo visualizza il modello AnonymousTemplate o il modello LoggedInTemplate. Nei modelli è possibile aggiungere codice e controlli per la visualizzazione delle informazioni appropriate per gli utenti anonimi e gli utenti autenticati, rispettivamente.

Il controllo LoginView include anche eventi per ViewChanging e ViewChanged, che consentono di scrivere gestori da utilizzare quando l'utente esegue l'accesso e modifica lo stato.

Controllo LoginStatus

Il controllo LoginStatus visualizza un collegamento di accesso per gli utenti che non sono autenticati e un collegamento di disconnessione per quelli che sono autenticati. Il collegamento di accesso visualizza una pagina di accesso per l'utente. Il collegamento di disconnessione reimposta l'identità dell'utente corrente come utente anonimo.

È possibile personalizzare l'aspetto del controllo LoginStatus impostando le proprietà LoginText e LoginImageUrl.

Controllo LoginName

Il controllo LoginName visualizza il nome di accesso di un utente che abbia effettuato l'accesso mediante l'appartenenza ASP.NET. In alternativa, se il sito utilizza l'autenticazione integrata di Windows, il controllo visualizza il nome dell'account Windows dell'utente.

Controllo PasswordRecovery

Il controllo PasswordRecovery consente di recuperare le password utente in base all'indirizzo di posta elettronica utilizzato al momento della creazione dell'account. Il controllo infatti invia all'utente un messaggio di posta elettronica contenente la password.

È possibile configurare l'appartenenza ASP.NET in modo da memorizzare le password mediante una crittografia non reversibile. In questo caso, il controllo PasswordRecovery genera una nuova password anziché inviare all'utente quella originale.

È anche possibile configurare l'appartenenza in modo da includere una domanda segreta alla quale l'utente deve rispondere per recuperare una password. In questo caso, il controllo PasswordRecovery pone la domanda e verifica la risposta prima di recuperare la password.

Il controllo PasswordRecovery richiede che l'applicazione sia in grado di inoltrare il messaggio di posta elettronica a un server SMTP (Simple Mail Transfer Protocol). È possibile personalizzare il testo e il formato del messaggio di posta elettronica inviato all'utente impostando la proprietà MailDefinition.

Nota:

Le informazioni sulla password inviate in un messaggio di posta elettronica vengono inviate come testo non crittografato.

Nell'esempio riportato di seguito viene illustrato un controllo PasswordRecovery dichiarato in una pagina ASP.NET con le impostazioni della proprietà MailDefinition per personalizzare il messaggio di posta elettronica.

<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server" 
    SubmitButtonText="Get Password" SubmitButtonType="Link">
  <MailDefinition From="administrator@Contoso.com" 
    Subject="Your new password"
    BodyFileName="PasswordMail.txt" />
</asp:PasswordRecovery>

Controllo CreateUserWizard

Il controllo CreateUserWizard raccoglie informazioni dai potenziali utenti e, per impostazione predefinita, aggiunge i nuovi utenti nel sistema di appartenenze ASP.NET.

Le informazioni raccolte sugli utenti sono le seguenti:

  • Nome utente

  • Password

  • Conferma della password

  • Indirizzo di posta elettronica

  • Domanda segreta

  • Risposta segreta

Queste informazioni vengono utilizzate per autenticare gli utenti e recuperarne le password, se necessario.

Nota:

Il controllo CreateUserWizard viene ereditato dal controllo Wizard.

Nell'esempio riportato di seguito viene illustrata una tipica dichiarazione ASP.NET per il controllo CreateUserWizard:

<asp:CreateUserWizard ID="CreateUserWizard1" Runat="server" 
    ContinueDestinationPageUrl="~/Default.aspx">
  <WizardSteps>
    <asp:CreateUserWizardStep Runat="server" 
      Title="Sign Up for Your New Account">
    </asp:CreateUserWizardStep>
    <asp:CompleteWizardStep Runat="server" 
      Title="Complete">
    </asp:CompleteWizardStep>
  </WizardSteps>
</asp:CreateUserWizard>

Controllo ChangePassword

Mediante il controllo ChangePassword gli utenti possono modificare la propria password. L'utente deve innanzitutto fornire la password originale e quindi creare e confermare quella nuova. Se la password originale è corretta, la password dell'utente viene sostituita con quella nuova. Il controllo include inoltre il supporto per l'invio di un messaggio di posta elettronica relativo alla nuova password.

Il controllo ChangePassword dispone di due viste basate su modelli che vengono visualizzate all'utente. Il primo modello è ChangePasswordTemplate e visualizza l'interfaccia utente utilizzata per raccogliere i dati necessari per modificare la password dell'utente. Il secondo modello è SuccessTemplate e definisce l'interfaccia utente che viene visualizzata dopo aver modificato correttamente una password utente.

Il controllo ChangePassword può essere utilizzato sia con gli utenti autenticati che con quelli che non lo sono. Se un utente non è stato autenticato, il controllo chiede all'utente un nome di accesso. Se l'utente è autenticato, il controllo inserisce il nome di accesso dell'utente nella casella di testo.

Vedere anche

Concetti

Personalizzazione dell'aspetto dei controlli di accesso ASP.NET