Assembly: System.Web (in system.web.dll)
Public NotInheritable Class Membership
È possibile accedere direttamente ai membri di una classe Static senza un'istanza della classe.
public static class Membership
public ref class Membership abstract sealed
public final class Membership
public final class Membership
La classe Membership è utilizzata nelle applicazioni ASP.NET per convalidare le credenziali degli utenti e per gestire le impostazioni utente, come ad esempio la password e l'indirizzo di posta elettronica. La classe Membership può essere utilizzata in modo autonomo o insieme alla classe FormsAuthentication per creare un sistema completo di autenticazione degli utenti di un'applicazione o di un sito Web. Il controllo Login incapsula la classe Membership per fornire un efficace meccanismo di convalida degli utenti.
La classe Membership è dotata di strumenti che consentono di svolgere le seguenti operazioni:
-
Creazione di nuovi utenti.
-
Memorizzazione delle informazioni di 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 accedono al sito. È possibile autenticare gli utenti a livello di codice; in alternativa, è anche possibile utilizzare il controllo Login per creare un sistema completo di autenticazione che richiede una quantità minima o nulla di codice.
-
Operazioni di gestione delle password (quali ad esempio creazione, modifica, recupero e reimpostazione). Se lo si desidera, è possibile configurare l'appartenenza ASP.NET in modo da implementate una domanda e una risposta relative alla password per consentire agli utenti che abbiano dimenticato la password di reimpostarla o recuperarla.
Benché sia una funzionalità di autenticazione autonoma di ASP.NET, l'appartenenza ASP.NET può essere integrata con la gestione dei ruoli di ASP.NET per implementare dei servizi di autorizzazione in un sito. L'appartenenza può anche essere integrata con i profili utente System.Web.Profile di ASP.NET per fornire una personalizzazione specifica dell'applicazione adattabile a utenti specifici. Per ulteriori dettagli, vedere Informazioni sulla gestione dei ruoli e Cenni preliminari sulle proprietà dei profili ASP.NET.
La classe Membership si basa sui provider di appartenenze per la comunicazione con un'origine dati. In .NET Framework è disponibile un oggetto SqlMembershipProvider che consente di memorizzare le informazioni utente in un database Microsoft SQL Server e un oggetto ActiveDirectoryMembershipProvider che consente di memorizzare le informazioni utente su un server Active Directory o Active Directory Application Mode (ADAM). È anche possibile implementare un provider di appartenenze personalizzato per comunicare con un'origine dati alternativa che può essere utilizzata dalla classe Membership. I provider di appartenenze personalizzati ereditano la classe astratta MembershipProvider. Per ulteriori informazioni, vedere Implementazione di un provider di appartenenze.
Per impostazione predefinita, l'appartenenza ASP.NET è attivata per tutte le applicazioni ASP.NET. Il provider di appartenenze predefinito è SqlMembershipProvider ed è specificato nella configurazione del computer con il nome AspNetSqlProvider. L'istanza predefinita del provider SqlMembershipProvider è configurata in modo da connettersi a un'istanza locale di Microsoft SQL Server.
È possibile modificare le impostazioni predefinite per specificare come provider predefinito un provider SqlMembershipProvider diverso dall'istanza AspNetSqlProvider; in alternativa, nel file Web.config è possibile specificare un'istanza di un provider personalizzato come provider predefinito dell'applicazione ASP.NET. È possibile specificare la configurazione dell'appartenenza ASP.NET dell'applicazione Web utilizzando la sezione di configurazione membership del file Web.config. Nella sottosezione providers della sezione membership è possibile specificare un provider di appartenenze diverso dai provider predefiniti. Ad esempio, la sezione membership riportata di seguito consente di rimuovere i provider di appartenenze predefiniti dalla configurazione dell'applicazione corrente e di aggiungere un nuovo provider denominato SqlProvider che si connette all'istanza di SQL Server denominata MySqlServer.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;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>
Nell'esempio di codice riportato di seguito viene illustrata la pagina di accesso di un'applicazione ASP.NET configurata per l'utilizzo dell'autenticazione basata su form e dell'appartenenza ASP.NET. Se le credenziali fornite dall'utente non sono valide, viene visualizzato un messaggio. Altrimenti, l'utente viene reindirizzato all'URL inizialmente richiesto mediante il metodo RedirectFromLoginPage.
Nota |
|---|
| I controlli di accesso ASP.NET (Login, LoginView, LoginStatus, LoginName e PasswordRecovery) incapsulano praticamente tutta la logica necessaria per richiedere le credenziali degli utenti e convalidare tali credenziali nel sistema di appartenenze. Inoltre, questi controlli possono essere utilizzati al posto delle verifiche a livello di codice mediante la classe Membership. |
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <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> <head> <title>Login</title> </head> <body> <form runat="server"> <h3>Login</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> 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 <u>not</u> a public computer. </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <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> <head> <title>Login</title> </head> <body> <form runat="server"> <h3>Login</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> 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 <u>not</u> a public computer. </form> </body> </html>
- AspNetHostingPermission per utilizzare la classe Membership in un ambiente host. Valore richiesta: LinkDemand. Valore autorizzazione: Minimal.
System.Web.Security.Membership
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
.NET Framework
Supportato in: 2.0Riferimenti
Membri MembershipSpazio dei nomi System.Web.Security
Nota