Membership Classe

Definizione

Convalida le credenziali degli utenti e gestisce le impostazioni utente. La classe non può essere ereditata.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Ereditarietà
Membership

Esempio

Nell'esempio di codice seguente viene illustrata la pagina di accesso per un'applicazione ASP.NET configurata per usare l'autenticazione dei moduli e l'appartenenza ASP.NET. Se le credenziali utente specificate non sono valide, viene visualizzato un messaggio all'utente. In caso contrario, l'utente viene reindirizzato all'URL richiesto originariamente usando il RedirectFromLoginPage metodo .

Nota

I controlli di accesso ASP.NET (Login, LoginViewLoginNameLoginStatuse PasswordRecovery) incapsulano virtualmente tutte le logica necessarie per richiedere agli utenti le credenziali e convalidare le credenziali nel sistema di appartenenza e possono essere usate al posto del controllo a livello di codice usando la Membership classe.

Importante

Questo esempio contiene una casella di testo che accetta l'input utente, ovvero una potenziale minaccia di sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

Commenti

La Membership classe viene usata nelle applicazioni ASP.NET per convalidare le credenziali utente e gestire le impostazioni utente, ad esempio password e indirizzi di posta elettronica. La Membership classe può essere usata autonomamente o in combinazione con FormsAuthentication per creare un sistema completo per autenticare gli utenti di un'applicazione Web o di un sito. Il Login controllo incapsula la Membership classe per fornire un meccanismo pratico per convalidare gli utenti.

Nota

Se non si ha familiarità con le funzionalità di appartenenza di ASP.NET, vedere Introduzione all'appartenenza prima di continuare. Per un elenco di altri argomenti correlati all'appartenenza, vedere Gestione degli utenti tramite l'appartenenza.

La Membership classe offre strutture per:

  • Creazione di nuovi utenti.

  • Archiviazione di informazioni sull'appartenenza (nomi utente, password, indirizzi di posta elettronica e dati di supporto) in Microsoft SQL Server o in un archivio dati alternativo.

  • Autenticazione degli utenti che visitano il sito. È possibile autenticare gli utenti a livello di codice oppure usare il Login controllo per creare un sistema di autenticazione completo che richiede poco o nessun codice.

  • Gestione delle password, che include la creazione, la modifica, il recupero e la reimpostazione e così via. Facoltativamente, è possibile configurare ASP.NET appartenenza per richiedere una domanda password e rispondere per autenticare la reimpostazione della password o le richieste di recupero per gli utenti che hanno dimenticato la password.

Anche se l'appartenenza ASP.NET è una funzionalità autonoma in ASP.NET Per l'autenticazione, può essere integrata con la gestione dei ruoli ASP.NET per fornire servizi di autorizzazione per il sito. L'appartenenza può anche essere integrata con l'utente ASP.NET per fornire personalizzazioni specifiche dell'applicazione System.Web.Profile che possono essere personalizzate per singoli utenti. Per informazioni dettagliate, vedere Informazioni sulla gestione dei ruoli e ASP.NET Panoramica delle proprietà del profilo.

La Membership classe si basa sui provider di appartenenza per comunicare con un'origine dati. .NET Framework include un SqlMembershipProvideroggetto , che archivia le informazioni utente in un database Microsoft SQL Server e un ActiveDirectoryMembershipProvideroggetto , che consente di archiviare le informazioni utente in un server Active Directory o active Directory Application Mode (ADAM). È anche possibile implementare un provider di appartenenza personalizzato per comunicare con un'origine Membership dati alternativa che può essere usata dalla classe. I provider di appartenenza personalizzati ereditano la MembershipProvider classe astratta. Per altre informazioni, vedere Implementazione di un provider di appartenenza.

Per impostazione predefinita, l'appartenenza ASP.NET è abilitata per tutte le applicazioni ASP.NET. Il provider di appartenenza predefinito è e SqlMembershipProvider viene specificato nella configurazione del computer con il nome AspNetSqlProvider. L'istanza predefinita di è configurata per connettersi a un'istanza SqlMembershipProvider locale di Microsoft SQL Server.

È possibile modificare le impostazioni predefinite per specificare un'istanza diversa AspNetSqlProvider dall'istanza come provider predefinito oppure specificare un'istanza SqlMembershipProvider di un provider personalizzato come provider predefinito per l'applicazione ASP.NET usando il file di Web.config. È possibile specificare la configurazione dell'appartenenza ASP.NET per l'applicazione Web usando la sezione configurazione di appartenenza nel file Web.config. È possibile usare la sottosezione provider della sezione appartenenza per specificare un provider di appartenenza diverso da uno dei provider predefiniti. Ad esempio, la sezione di appartenenza seguente rimuove i provider di appartenenza predefiniti dalla configurazione dell'applicazione corrente e aggiunge un nuovo provider con un nome di SqlProvider che si connette a un'istanza di SQL Server denominata AspSqlServer.

<configuration>  
  <connectionStrings>  
    <add name="SqlServices" connectionString="Data Source=AspSqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />  
  </connectionStrings>  
  <system.web>  
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">  
      <providers>  
        <remove name="AspNetSqlProvider" />  
        <add name="SqlProvider"  
          type="System.Web.Security.SqlMembershipProvider"  
          connectionStringName="SqlServices"  
          enablePasswordRetrieval="false"  
          enablePasswordReset="true"  
          requiresQuestionAndAnswer="true"  
          passwordFormat="Hashed"  
          applicationName="/" />  
      </providers>  
    </membership>  
  </system.web>  
</configuration>  

Proprietà

ApplicationName

Ottiene o imposta il nome dell'applicazione.

EnablePasswordReset

Ottiene un valore che indica se il provider di appartenenze corrente è configurato in modo da consentire agli utenti di reimpostare le loro password.

EnablePasswordRetrieval

Ottiene un valore che indica se il provider di appartenenze corrente è configurato in modo da consentire agli utenti di recuperare le loro password.

HashAlgorithmType

Identificatore dell'algoritmo utilizzato per la codifica hash delle password.

MaxInvalidPasswordAttempts

Ottiene il numero consentito di tentativi non validi di immissione della password o di risposta alla domanda segreta della password prima che l'utente di appartenenza venga bloccato.

MinRequiredNonAlphanumericCharacters

Ottiene il numero minimo di caratteri speciali che devono essere presenti in una password valida.

MinRequiredPasswordLength

Ottiene la lunghezza minima richiesta per una password.

PasswordAttemptWindow

Ottiene l'intervallo di tempo in cui vengono registrati i tentativi consecutivi non riusciti di fornire una password valida o una risposta per la password.

PasswordStrengthRegularExpression

Ottiene l'espressione regolare usata per valutare una password.

Provider

Ottiene un riferimento al provider di appartenenze predefinito per l'applicazione.

Providers

Ottiene un insieme dei provider di appartenenze per l'applicazione ASP.NET.

RequiresQuestionAndAnswer

Ottiene un valore che indica se il provider di appartenenze predefinito richiede agli utenti di rispondere a una domanda per la password prima di consentire la reimpostazione e il recupero della password.

UserIsOnlineTimeWindow

Specifica il lasso di tempo in minuti a partire dall'indicatore di ultima data e ora di attività dell'utente durante il quale l'utente è considerato online.

Metodi

CreateUser(String, String)

Aggiunge un nuovo utente all'archivio dati.

CreateUser(String, String, String)

Aggiunge all'archivio dati un nuovo utente con l'indirizzo di posta elettronica specificato.

CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)

Aggiunge all'archivio dati un nuovo utente con valori di proprietà specifici e restituisce un parametro di stato che indica se l'utente è stato creato correttamente. In caso contrario, riporta il motivo per cui la creazione dell'utente non è riuscita.

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

Aggiunge all'archivio dati un nuovo utente con valori di proprietà specifici e un identificatore univoco, oltre a restituire un parametro di stato che indica se l'utente è stato creato correttamente. In caso contrario, riporta il motivo per cui la creazione dell'utente non è riuscita.

DeleteUser(String)

Elimina dal database un utente insieme ai relativi dati.

DeleteUser(String, Boolean)

Elimina un utente dal database.

FindUsersByEmail(String)

Ottiene una raccolta degli utenti di appartenenza in cui l'indirizzo di posta elettronica contiene l'indirizzo specificato di cui verificare la corrispondenza.

FindUsersByEmail(String, Int32, Int32, Int32)

Ottiene in una pagina di dati una raccolta di utenti di appartenenza i cui indirizzi di posta elettronica contengono l'indirizzo di posta elettronica specificato per cui verificare la corrispondenza.

FindUsersByName(String)

Ottiene un insieme degli utenti di appartenenza in cui il nome utente contiene il nome specificato di cui verificare la corrispondenza.

FindUsersByName(String, Int32, Int32, Int32)

Ottiene e visualizza in una pagina di dati un insieme degli utenti di appartenenza in cui il nome utente contiene il nome utente specificato di cui verificare la corrispondenza.

GeneratePassword(Int32, Int32)

Genera una password casuale con la lunghezza specificata.

GetAllUsers()

Ottiene un insieme di tutti gli utenti nel database.

GetAllUsers(Int32, Int32, Int32)

Ottiene e restituisce in pagine di dati un insieme di tutti gli utenti nel database.

GetNumberOfUsersOnline()

Ottiene il numero corrente di utenti connessi a un'applicazione.

GetUser()

Ottiene le informazioni dall'origine dati e aggiorna l'indicatore di ultima data e ora di attività dell'utente di appartenenza correntemente connesso al sistema.

GetUser(Boolean)

Ottiene dall'origine dati le informazioni dell'utente di appartenenza correntemente connesso al sistema. Se specificato, aggiorna l'indicatore di ultima data e ora di attività dell'utente di appartenenza correntemente connesso al sistema.

GetUser(Object)

Ottiene dall'origine dati le informazioni dell'utente di appartenenza associato all'identificatore univoco specificato.

GetUser(Object, Boolean)

Ottiene dall'origine dati le informazioni dell'utente di appartenenza associato all'identificatore univoco specificato. Se specificato, aggiorna l'indicatore di ultima data e ora di attività dell'utente.

GetUser(String)

Ottiene dall'origine dati le informazioni dell'utente di appartenenza specificato.

GetUser(String, Boolean)

Ottiene dall'origine dati le informazioni dell'utente di appartenenza specificato. Se specificato, aggiorna l'indicatore di ultima data e ora di attività dell'utente.

GetUserNameByEmail(String)

Ottiene il nome di un utente il cui indirizzo di posta elettronica corrisponde all'indirizzo di posta elettronica specificato.

UpdateUser(MembershipUser)

Aggiorna il database con le informazioni dell'utente specificato.

ValidateUser(String, String)

Verifica che il nome utente e la password forniti siano validi.

Eventi

ValidatingPassword

Si verifica quando viene creato un utente, viene modificata una password o viene reimpostata una password.

Si applica a

Vedi anche