Gli ultimi tutorial di sviluppo web
 

ASP.NET Pagine Web - WebSecurity Object


Descrizione

L'oggetto WebSecurity offre la sicurezza e l'autenticazione per le applicazioni di pagine Web ASP.NET.

Con l'oggetto WebSecurity è possibile creare account utente, login e utenti di logout, reimpostare o modificare le password, e altro ancora.


WebSecurity Object Reference - Proprietà

Proprietà Descrizione
CurrentUserId Ottiene l'ID per l'utente corrente
CurrentUserName Ottiene il nome dell'utente corrente
HasUserId Restituisce true se la corrente ha un ID utente
IsAuthenticated Restituisce true se l'utente corrente è connesso

WebSecurity Object Reference - Metodi

Metodo Descrizione
ChangePassword() Modifica la password di un utente
ConfirmAccount() Conferma un account utilizzando un token di conferma
CreateAccount() Crea un nuovo account utente
CreateUserAndAccount() Crea un nuovo account utente
GeneratePasswordResetToken() Genera un token che può essere inviato a come utente per e-mail
GetCreateDate() Ottiene il tempo a quanto specificato è stato creato
GetPasswordChangeDate() Ottiene la data e l'ora in cui password è stata cambiata
GetUserId() Ottiene un ID utente da un nome utente
InitializeDatabaseConnection() Inizializza il sistema WebSecurity (database)
IsConfirmed() Controlla se un utente è confermato
IsCurrentUser() Controlla se l'utente corrente corrisponde a un nome utente
Login() Registra l'utente in impostando un gettone nel cookie
Logout() Registra l'utente togliendo il cookie di token
RequireAuthenticatedUser() Esce dalla pagina se l'utente non è un utente autenticato
RequireRoles() Esce dalla pagina se l'utente non fa parte dei ruoli specificati
RequireUser() Esce dalla pagina se l'utente non è l'utente specificato
ResetPassword() Cambia password di un utente mediante un token
UserExists() Controlla se esiste un dato utente

Dati tecnici

Nome Valore
Classe WebMatrix.WebData.WebSecurity
Spazio dei nomi WebMatrix.WebData
montaggio WebMatrix.WebData.dll

Inizializzazione del database WebSecurity

È necessario creare o inizializzare un database WebSecurity prima di poter utilizzare l'oggetto WebSecurity nel codice.

Nella radice del vostro web, creare una pagina (or edit the page ) denominata _AppStart.cshtml.

Inserire il seguente codice all'interno del file:

_AppStart.cshtml

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

Il codice di cui sopra verrà eseguito ogni volta che il sito web (application) si avvia. Si inizializza il database WebSecurity.

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

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

"UserID" è il nome della colonna che contiene gli ID utente (primary key) .

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

L'ultimo parametro vero è un valore booleano che indica che il profilo utente e tabelle di appartenenza dovrebbero essere creati automaticamente se non esistono, altrimenti false.

Anche se vero indica la creazione automatica delle tabelle del database, il database stesso non verrà creato automaticamente. Deve esistere.


Database WebSecurity

La tabella UserProfile contiene un record per ogni utente, con un ID utente (primary key) e il nome dell'utente (email) :

ID utente E-mail
1 [email protected]
2 [email protected]
3 [email protected]

La tabella di adesione conterrà informazioni di appartenenza di quando è stato creato l'utente e se (and when) l'adesione è stata confermata.

Molto simile a questa (some columns are not shown) :

Utente
Id
Creare
Data
Conferma
Gettone
È
Confermato
Ultimo
Parola d'ordine
Fallimento
Parola d'ordine Parola d'ordine
Modificare
1 12.04.2012 16:12:17 NULLO Vero NULLO AFNQhWfy .... 12.04.2012 16:12:17

Nota: Se si desidera visualizzare tutte le colonne e tutti i contenuti, aprire il database con WebMatrix e guardare dentro ogni tavolo.


Configurazione semplice appartenenza

Si potrebbe ottenere errori utilizzando l'oggetto WebSecurity, se il sito non è configurato per utilizzare il sistema di appartenenza pagine ASP.NET Web SimpleMembership.

Ciò può verificarsi se il server di un fornitore di hosting è configurato in modo diverso da quello del server locale. Per risolvere questo problema, aggiungere il seguente elemento nel file web.config del sito:

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