Membership Třída

Definice

Ověřuje přihlašovací údaje uživatele a spravuje uživatelská nastavení. Tato třída se nemůže dědit.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Dědičnost
Membership

Příklady

Následující příklad kódu ukazuje přihlašovací stránku pro aplikaci ASP.NET nakonfigurovanou tak, aby používala ověřování pomocí formulářů a ASP.NET členství. Pokud jsou zadané přihlašovací údaje uživatele neplatné, zobrazí se uživateli zpráva. V opačném případě je uživatel přesměrován na původně požadovanou adresu URL pomocí RedirectFromLoginPage metody .

Poznámka

Ovládací prvky ASP.NET přihlášení (Login, LoginView, LoginStatus, LoginNamea PasswordRecovery) zapouzdřují prakticky veškerou logiku potřebnou k výzvě uživatelů k zadání přihlašovacích údajů a ověření přihlašovacích údajů v systému členství a lze je použít místo programové kontroly pomocí Membership třídy .

Důležité

Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřte, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.

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

Poznámky

Třída se Membership používá v aplikacích ASP.NET k ověřování přihlašovacích údajů uživatele a správě uživatelských nastavení, jako jsou hesla a e-mailové adresy. Třídu Membership lze použít samostatně nebo ve spojení s FormsAuthentication k vytvoření kompletního systému pro ověřování uživatelů webové aplikace nebo webu. Ovládací Login prvek zapouzdřuje Membership třídu, která poskytuje pohodlný mechanismus pro ověřování uživatelů.

Poznámka

Pokud nejste obeznámeni s funkcemi členství ASP.NET, přečtěte si před pokračováním úvod do členství . Seznam dalších témat souvisejících s členstvím najdete v tématu Správa uživatelů pomocí členství.

Třída Membership poskytuje zařízení pro:

  • Vytváření nových uživatelů

  • Ukládání informací o členství (uživatelská jména, hesla, e-mailové adresy a podpůrná data) na Microsoft SQL Serveru nebo v alternativním úložišti dat.

  • Ověřování uživatelů, kteří navštíví váš web. Uživatele můžete ověřovat programově nebo můžete pomocí Login ovládacího prvku vytvořit kompletní ověřovací systém, který vyžaduje jen málo kódu nebo vůbec žádný kód.

  • Správa hesel, která zahrnuje jejich vytváření, změny, načítání a resetování atd. Volitelně můžete nakonfigurovat členství ASP.NET tak, aby pro uživatele, kteří zapomněli heslo, vyžadovalo dotaz a odpověď k ověření resetování hesla nebo žádosti o načtení hesla.

I když je členství v ASP.NET samostatnou funkcí v ASP.NET Pro ověřování, dá se integrovat se správou rolí ASP.NET a poskytovat služby autorizace pro váš web. Členství lze také integrovat s ASP.NET uživatelem System.Web.Profile , aby poskytovalo přizpůsobení specifické pro aplikaci, které lze přizpůsobit jednotlivým uživatelům. Podrobnosti najdete v tématu Přehled principů správy rolí a ASP.NET vlastností profilu.

Třída Membership spoléhá na zprostředkovatele členství ke komunikaci se zdrojem dat. Rozhraní .NET Framework obsahuje SqlMembershipProvider, který ukládá informace o uživatelích v databázi Microsoft SQL Serveru, a ActiveDirectoryMembershipProvider, který umožňuje ukládat informace o uživatelích na serveru Active Directory nebo Active Directory Application Mode (ADAM). Můžete také implementovat vlastního zprostředkovatele členství pro komunikaci s alternativním zdrojem dat, který může být použita Membership třídou . Vlastní zprostředkovatelé členství dědí MembershipProvider abstraktní třídu. Další informace najdete v tématu Implementace zprostředkovatele členství.

Ve výchozím nastavení je ASP.NET členství povolené pro všechny aplikace ASP.NET. Výchozí zprostředkovatel členství je SqlMembershipProvider a je zadaný v konfiguraci počítače s názvem AspNetSqlProvider. Výchozí instance je SqlMembershipProvider nakonfigurována pro připojení k místní instanci Microsoft SQL Serveru.

Úpravou výchozího nastavení můžete zadat SqlMembershipProvider jiného než AspNetSqlProvider instanci jako výchozího zprostředkovatele nebo určit instanci vlastního zprostředkovatele jako výchozího zprostředkovatele pro aplikaci ASP.NET pomocí souboru Web.config. Konfiguraci ASP.NET členství pro webovou aplikaci můžete zadat pomocí oddílu konfigurace členství v souboru Web.config. Pododdíl Poskytovatelé v oddílu členství můžete použít k určení jiného zprostředkovatele členství než jednoho z výchozích zprostředkovatelů. Například následující část členství odebere výchozí zprostředkovatele členství z aktuální konfigurace aplikace a přidá nového zprostředkovatele s názvem SqlProvider , který se připojuje k instanci SYSTÉMU SQL Server s názvem 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>  

Vlastnosti

ApplicationName

Získá nebo nastaví název aplikace.

EnablePasswordReset

Získá hodnotu označující, zda je aktuální zprostředkovatel členství nakonfigurován tak, aby uživatelům umožňoval resetovat hesla.

EnablePasswordRetrieval

Získá hodnotu označující, zda je aktuální zprostředkovatel členství nakonfigurován tak, aby uživatelům umožňoval načíst jejich hesla.

HashAlgorithmType

Identifikátor algoritmu použitého k hashování hesel.

MaxInvalidPasswordAttempts

Získá počet neplatné heslo nebo heslo-odpověď pokusy povolené před členství uživatel je uzamčen.

MinRequiredNonAlphanumericCharacters

Získá minimální počet speciálních znaků, které musí obsahovat platné heslo.

MinRequiredPasswordLength

Získá minimální délku vyžadovanou pro heslo.

PasswordAttemptWindow

Získá časový interval, mezi kterým jsou sledovány po sobě jdoucí neúspěšné pokusy o zadání platného hesla nebo odpovědi hesla.

PasswordStrengthRegularExpression

Získá regulární výraz použitý k vyhodnocení hesla.

Provider

Získá odkaz na výchozího zprostředkovatele členství pro aplikaci.

Providers

Získá kolekci zprostředkovatelů členství pro aplikaci ASP.NET.

RequiresQuestionAndAnswer

Získá hodnotu označující, zda výchozí zprostředkovatel členství vyžaduje, aby uživatel odpověděl na otázku hesla pro resetování a načtení hesla.

UserIsOnlineTimeWindow

Určuje počet minut od data a časového razítka poslední aktivity pro uživatele, během kterého se uživatel považuje za online.

Metody

CreateUser(String, String)

Přidá nového uživatele do úložiště dat.

CreateUser(String, String, String)

Přidá do úložiště dat nového uživatele se zadanou e-mailovou adresou.

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

Přidá nového uživatele se zadanými hodnotami vlastností do úložiště dat a vrátí parametr stavu označující, že uživatel byl úspěšně vytvořen nebo důvod, proč se vytvoření uživatele nezdařilo.

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

Přidá do úložiště dat nového uživatele se zadanými hodnotami vlastností a jedinečným identifikátorem a vrátí parametr stavu označující, že uživatel byl úspěšně vytvořen nebo důvod, proč se vytvoření uživatele nezdařilo.

DeleteUser(String)

Odstraní uživatele a všechna související uživatelská data z databáze.

DeleteUser(String, Boolean)

Odstraní uživatele z databáze.

FindUsersByEmail(String)

Získá kolekci členství uživatelů, kde e-mailová adresa obsahuje zadanou e-mailovou adresu ke shodě.

FindUsersByEmail(String, Int32, Int32, Int32)

Získá kolekci členství uživatelů na stránce dat, kde e-mailová adresa obsahuje zadanou e-mailovou adresu ke shodě.

FindUsersByName(String)

Získá kolekci členství uživatelů, kde uživatelské jméno obsahuje zadané uživatelské jméno odpovídající.

FindUsersByName(String, Int32, Int32, Int32)

Získá kolekci členství uživatelů na stránce dat, kde uživatelské jméno obsahuje zadané uživatelské jméno ke shodě.

GeneratePassword(Int32, Int32)

Vygeneruje náhodné heslo o zadané délce.

GetAllUsers()

Získá kolekci všech uživatelů v databázi.

GetAllUsers(Int32, Int32, Int32)

Získá kolekci všech uživatelů v databázi na stránkách dat.

GetNumberOfUsersOnline()

Získá počet uživatelů, kteří aktuálně přistupují k aplikaci.

GetUser()

Získá informace ze zdroje dat a aktualizuje datum a časové razítko poslední aktivity pro aktuální přihlášený uživatel členství.

GetUser(Boolean)

Získá informace ze zdroje dat pro aktuální přihlášený uživatel členství. Pokud je zadáno, aktualizuje datum a čas poslední aktivity pro aktuálního přihlášeného uživatele členství.

GetUser(Object)

Získá informace ze zdroje dat pro uživatele členství přidruženého k zadanému jedinečnému identifikátoru.

GetUser(Object, Boolean)

Získá informace ze zdroje dat pro uživatele členství přidruženého k zadanému jedinečnému identifikátoru. Aktualizuje datum a čas poslední aktivity pro uživatele, pokud je zadáno.

GetUser(String)

Získá informace ze zdroje dat pro zadaného uživatele členství.

GetUser(String, Boolean)

Získá informace ze zdroje dat pro zadaného uživatele členství. Aktualizuje datum a čas poslední aktivity pro uživatele, pokud je zadáno.

GetUserNameByEmail(String)

Získá uživatelské jméno, kde e-mailová adresa uživatele odpovídá zadané e-mailové adrese.

UpdateUser(MembershipUser)

Aktualizuje databázi informacemi pro zadaného uživatele.

ValidateUser(String, String)

Ověří platnost zadaného uživatelského jména a hesla.

Událost

ValidatingPassword

Vyvolá se při vytvoření uživatele, změně hesla nebo resetování hesla.

Platí pro

Viz také