Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Cenni preliminari sui controlli di accesso di ASP.NET

ASP.NET fornisce la funzionalità di accesso (autenticazione) affidabile per le applicazioni Web ASP.NET senza richiedere programmazione. I modelli del progetto di Visual Studio predefiniti per le applicazioni Web e per i siti Web includono pagine già compilate che permettono agli utenti di registrare un nuovo account, accedere e modificare le password. Per informazioni sull'utilizzo dei modelli della pagina di accesso incorporati, vedere Procedura dettagliata: creazione di un sito Web ASP.NET con accesso utente di base.

È anche possibile creare pagine che è possibile aggiungere ai controlli dell'accesso ASP.NET per aggiungere la funzionalità di accesso. Per utilizzare i controlli di accesso, si creano pagine Web, quindi si aggiungono i controlli di accesso ad esse da Casella degli strumenti.

In genere, si limita l'accesso alle pagine ASP.NET inserendole in una cartella protetta. Si configura quindi la cartella per negare accesso agli utenti anonimi (utenti che non sono connessi) e concedere l'accesso agli utenti autenticati (connessi). Il modello di progetto predefinito per i progetti Web include una cartella denominata Account già configurata per consentire l'accesso solo agli utenti connessi. Facoltativamente, è possibile assegnare utenti ai ruoli e autorizzare quindi l'accesso da parte di utenti alle pagine Web specifiche dal ruolo.

Per impostazione predefinita, i controlli di accesso si integrano nelle appartenenze e nell'autenticazione basata su form di ASP.NET per semplificare l'automazione dell'autenticazione degli utenti per un sito Web. Per informazioni su come utilizzare le appartenenze di 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 a Web Site nella documentazione relativa a IIS (informazioni in lingua inglese).

NotaNota

I controlli di accesso potrebbero non funzionare correttamente se il controllo Method della pagina Web ASP.NET è 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.

Di seguito sono elencate le diverse sezioni di questo argomento:

Quando si utilizza il modello di Visual Studio predefinito per creare un sito Web o un'applicazione Web, le pagine che supportano la funzionalità di accesso vengono create nella cartella Account. Per impostazione predefinita, le pagine della cartella Account non sono accessibili per gli utenti anonimi, ad eccezione della pagina di registrazione (Register.aspx) e della pagina di accesso (Login.aspx). Le impostazioni che definiscono l'accesso alle pagine della cartella Account vengono configurate nel file Web.config contenuto in tale cartella. Le impostazioni che definiscono l'accesso alla pagina di accesso vengono configurate nel file Web.config radice.

Nell'immagine seguente vengono mostrati i contenuti della cartella Account.

Cartella Account

Nell'immagine seguente vengono elencati i contenuti della cartella Account.

Pagina

Oggetto di descrizione

Login.aspx

Consente a utenti che dispongono di un account di accedere fornendo un nome utente e una password. Questa pagina include un collegamento alla pagina di registrazione. La pagina Login.aspx è accessibile agli utenti anonimi.

Contiene il controllo Login.

Nell'immagine seguente viene mostrata la pagina di accesso nel browser.

Modello di pagina di accesso

Register.aspx.

Consente agli utenti di registrarsi e di creare un nuovo account. La pagina è accessibile agli utenti anonimi e a quelli autenticati.

Contiene il controllo CreateUserWizard.

Nell'immagine seguente viene mostrata la pagina di creazione del nuovo account (registrazione) nel browser:

ChangePassword.aspx.

Abilita gli utenti che hanno effettuato l'accesso a modificare la propria password. Questa pagina è accessibile solo agli utenti autenticati.

Contiene il controllo ChangePassword.

Nell'immagine seguente viene mostrata la pagina del cambio di password nel browser:

Modello di pagina di modifica della password

ChangePasswordSuccess.aspx.

Visualizza un messaggio che indica che la password è stata modificata correttamente. Questa pagina è accessibile solo agli utenti autenticati.

In questa pagina non si utilizzano controlli di accesso ASP.NET.

Web.config

Contiene le impostazioni che definiscono l'accesso alle pagine nella cartella Account

Funzionalità di accesso nella pagina master

Quando si utilizza il modello di Visual Studio predefinito per creare un sito Web o un'applicazione Web, le pagine che supportano la funzionalità di accesso vengono create nella cartella Account.

La pagina Site.master include anche un collegamento ipertestuale alla pagina di accesso che è accessibile a tutti gli utenti.

Memorizzazione delle informazioni di accesso.

Le informazioni sull'accesso (appartenenza) vengono archiviate in un database, Per impostazione predefinita, questo è il database locale nel file ASPNETDB.mdf nella cartella App Data dell'applicazione Web. Il database può essere creato nei seguenti modi:

  • È possibile utilizzare lo strumento dell'Amministrazione di sito web per configurare manualmente appartenenza e ruoli, creando automaticamente il database. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un sito Web con appartenenza e accesso utente.

  • Quando il primo utente si registra e crea un account, e se il database non esiste già, ASP.NET crea automaticamente il database. Questa opzione non fornisce una modalità per specificare ruoli per un utente.

Modifica degli attributi dell'appartenenza

Le impostazioni per appartenenza ASP.NET sono nella sezione membership del file Web.config radice. Nella sezione providers è possibile modificare attributi quale il numero di tentativi di accesso non validi consentiti, lunghezza della password e così via. Per ulteriori informazioni, vedere Introduzione all'appartenenza.

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.

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 markup 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.

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.

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.

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.

NotaNota

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>

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.

NotaNota

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>

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 visualizzazioni 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.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft