ASP.NET Web Pages - Oggetto WebSecurity

Descrizione

L'oggetto WebSecurity fornisce sicurezza e autenticazione per le applicazioni ASP.NET Web Pages.

Attraverso l'oggetto WebSecurity, è possibile creare account utente, accedere e disconnettersi, resettare o cambiare password e altro ancora.

Manuale di riferimento dell'oggetto WebSecurity - Proprietà

Proprietà Descrizione
CurrentUserId Ottieni l'ID dell'utente corrente.
CurrentUserName Ottieni il nome dell'utente corrente.
HasUserId Ottieni il valore che indica se l'utente corrente ha un ID utente. Se sì, restituisce true.
IsAuthenticated Ottieni lo stato di autenticazione dell'utente corrente.

Manuale di riferimento dell'oggetto WebSecurity - Metodi

Proprietà Descrizione
ChangePassword() Cambia la password dell'utente.
ConfirmAccount() Conferma che l'account è valido e attiva l'account.
CreateAccount() Crea un nuovo account utente.
CreateUserAndAccount() Crea un nuovo account utente.
GeneratePasswordResetToken() Genera un token di reset della password che può essere inviato per e-mail all'utente.
GetCreateDate() Restituisce la data e l'ora di creazione dell'account membership specificato.
GetPasswordChangeDate() Restituisce la data e l'ora dell'ultima modifica della password dell'account membership specificato.
GetPasswordFailures
SinceLastSuccess()
Restituisce il numero di tentativi di login falliti con password errata dall'ultimo accesso o creazione dell'account membership.
GetUserId() Restituisce l'ID utente basato sul nome utente specificato.
GetUserIdFrom
PasswordResetToken ()
Restituisce l'ID utente dal token di ripristino della password.
InitializeDatabaseConnection() Inizializza il sistema di membership connettendosi al database che contiene le informazioni degli utenti.
IsAccountLockedOut() Indica se l'account di membership specificato è bloccato a causa di troppe tentativi di accesso falliti.
IsConfirmed() Restituisce un valore che indica se l'utente è stato confermato.
IsCurrentUser() Restituisce un valore che indica se il nome utente dell'utente connesso corrisponde al nome utente specificato.
Login() Accedi l'utente.
Logout() Disconnetti l'utente.
RequireAuthenticatedUser() Se l'utente non è autenticato, impostare lo stato HTTP su 401 (non autorizzato).
RequireRoles() Se l'utente corrente non appartiene al ruolo specificato, impostare il codice di stato HTTP su 401.
RequireUser() Se l'utente corrente non è l'utente specificato, impostare lo stato HTTP su 401.
ResetPassword() Ripristina la password utilizzando il token di ripristino della password.
UserExists() Controlla se l'utente esiste.

Technical Data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Inizializzare il database WebSecurity

Prima di utilizzare l'oggetto WebSecurity, deve creare o inizializzare il database WebSecurity.

Nella directory web, crea o modifica la pagina _AppStart.cshtml.

Scrivi il seguente codice nel file:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

Il sito web esegue il codice sopra ogni volta che viene avviato. Inizializzerà il database WebSecurity.

"Users" è il nome del database WebSecurity (Users.sdf)

"UserProfile" è il nome della tabella del database che contiene le informazioni di configurazione dell'utente.

"UserId" è il nome della colonna che contiene l'UserId (chiave primaria).

"Email" è il nome della colonna che contiene il nome utente.

L'ultimo parametro true è un valore logico che indica se devono essere creati i tabella del profilo utente e della membership (se non esistono), altrimenti false.

Suggerimento: anche se true indica la creazione automatica delle tabelle del database, il database stesso non viene creato automaticamente. Deve esistere.

Database WebSecurity

Ogni record nella tabella UserProfile rappresenta un utente, inclusi l'UserId (chiave primaria) e il nome utente (email):

UserId Email
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

La tabella Membership contiene informazioni di membership, come quando l'utente ha creato e se (e quando) ha confermato la membership.

Simile a questo (alcune colonne non elencate):

UserId Data di creazione Conferma
Token
Sei sicuro?
Conferma
Ultimo
Password errata
Password Cambio password
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Nota:Se desideri vedere tutte le colonne e tutti i contenuti, apri il database tramite WebMatrix e consulta ogni tabella.

Configurazione membership semplice

Se il tuo sito non è configurato per utilizzare il sistema di membership ASP.NET Web Pages SimpleMembership, potrebbe verificarsi un errore durante l'uso dell'oggetto WebSecurity.

Se la configurazione del provider di host è diversa dalla tua server locale, si può verificare un errore. Per risolvere questo problema, aggiungi i seguenti elementi nel file Web.config del sito:

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>