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