Membership Klass

Definition

Validerar användarautentiseringsuppgifter och hanterar användarinställningar. Det går inte att ärva den här klassen.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Arv
Membership

Exempel

I följande kodexempel visas inloggningssidan för ett ASP.NET program som har konfigurerats för att använda formulärautentisering och ASP.NET medlemskap. Om de angivna användarautentiseringsuppgifterna är ogiltiga visas ett meddelande för användaren. Annars omdirigeras användaren till den ursprungligen begärda URL:en med hjälp av RedirectFromLoginPage metoden.

Note

Inloggningskontrollerna för ASP.NET (Login, LoginView, LoginStatus, LoginName och PasswordRecovery) kapslar in praktiskt taget all logik som krävs för att fråga användarna om autentiseringsuppgifter och verifiera autentiseringsuppgifterna i medlemskapssystemet och kan användas i stället för programmatisk kontroll med hjälp av klassen Membership.

Important

Det här exemplet innehåller en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot. Som standard kontrollerar ASP.NET webbsidor att användarindata inte innehåller skript- eller HTML-element. Mer information finns i Översikt över skriptexploateringar.

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

Kommentarer

Klassen Membership används i ASP.NET program för att verifiera användarautentiseringsuppgifter och hantera användarinställningar som lösenord och e-postadresser. Klassen Membership kan användas på egen hand, eller tillsammans med för att skapa ett komplett system för att autentisera FormsAuthentication användare av ett webbprogram eller en webbplats. Kontrollen Login kapslar Membership in klassen för att tillhandahålla en praktisk mekanism för att verifiera användare.

Note

Om du inte är bekant med medlemskapsfunktionerna i ASP.NET kan du läsa Introduction to Membership innan du fortsätter. En lista över andra ämnen som rör medlemskap finns i Hantera användare med hjälp av medlemskap.

Klassen Membership tillhandahåller faciliteter för:

  • Skapa nya användare.

  • Lagra medlemskapsinformation (användarnamn, lösenord, e-postadresser och stöddata) i Microsoft SQL Server eller i ett alternativt datalager.

  • Autentisera användare som besöker din webbplats. Du kan autentisera Login användare programmatiskt, eller så kan du använda kontrollen för att skapa ett fullständigt autentiseringssystem som kräver lite eller ingen kod.

  • Hantera lösenord, vilket inkluderar att skapa, ändra, hämta och återställa dem och så vidare. Du kan också konfigurera ASP.NET medlemskap för att kräva en lösenordsfråga och svar för att autentisera begäranden om lösenordsåterställning eller hämtning för användare som har glömt sitt lösenord.

Även om ASP.NET medlemskap är en fristående funktion i ASP.NET För autentisering kan det integreras med ASP.NET rollhantering för att tillhandahålla auktoriseringstjänster för din webbplats. Medlemskap kan också integreras med ASP.NET användare System.Web.Profile för att tillhandahålla programspecifik anpassning som kan skräddarsys för enskilda användare. Mer information finns i Understanding Role Management and ASP.NET Profile Properties Overview.

Klassen Membership förlitar sig på medlemskapsproviders för att kommunicera med en datakälla. .NET Framework innehåller en SqlMembershipProvider som lagrar användarinformation i en Microsoft SQL Server-databas och en ActiveDirectoryMembershipProvider som gör att du kan lagra användarinformation på en služba Active Directory- eller služba Active Directory ADAM-server (Application Mode). Du kan också implementera en anpassad medlemskapsprovider för att kommunicera med en alternativ datakälla som kan användas av Membership klassen. Anpassade medlemskapsproviders ärver den MembershipProvider abstrakta klassen. Mer information finns i Implementera en medlemskapsprovider.

Som standard är ASP.NET medlemskap aktiverat för alla ASP.NET program. Standardmedlemskapsprovidern SqlMembershipProvider är och anges i datorkonfigurationen med namnet AspNetSqlProvider. Standardinstansen av SqlMembershipProvider är konfigurerad för att ansluta till en lokal instans av Microsoft SQL Server.

Du kan ändra standardinställningarna för att ange en SqlMembershipProvider annan än instansen AspNetSqlProvider som standardprovider eller ange en instans av en anpassad provider som standardprovider för ditt ASP.NET-program med hjälp av filen Web.config. Du kan ange konfigurationen ASP.NET medlemskap för webbprogrammet med hjälp av konfigurationsavsnittet membership i Web.config-filen. Du kan använda underavsnittet providers i medlemskapsavsnittet för att ange en annan medlemskapsprovider än någon av standardprovidrar. Följande avsnitt membership tar till exempel bort standardmedlemskapsprovidrar från den aktuella programkonfigurationen och lägger till en ny provider med namnet SqlProvider som ansluter till en SQL Server instans med namnet 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>

Egenskaper

Name Description
ApplicationName

Hämtar eller anger namnet på programmet.

EnablePasswordReset

Hämtar ett värde som anger om den aktuella medlemskapsprovidern är konfigurerad för att tillåta användare att återställa sina lösenord.

EnablePasswordRetrieval

Hämtar ett värde som anger om den aktuella medlemskapsprovidern är konfigurerad för att tillåta användare att hämta sina lösenord.

HashAlgorithmType

Identifieraren för algoritmen som används för hashlösenord.

MaxInvalidPasswordAttempts

Hämtar antalet ogiltiga lösenords- eller lösenordssvarsförsök som tillåts innan medlemskapsanvändaren låses ut.

MinRequiredNonAlphanumericCharacters

Hämtar det minsta antalet specialtecken som måste finnas i ett giltigt lösenord.

MinRequiredPasswordLength

Hämtar den minsta längd som krävs för ett lösenord.

PasswordAttemptWindow

Hämtar tidsfönstret där efterföljande misslyckade försök att ange ett giltigt lösenord eller lösenordssvar spåras.

PasswordStrengthRegularExpression

Hämtar det reguljära uttryck som används för att utvärdera ett lösenord.

Provider

Hämtar en referens till standardmedlemskapsprovidern för programmet.

Providers

Hämtar en samling av medlemskapsprovidrar för ASP.NET-programmet.

RequiresQuestionAndAnswer

Hämtar ett värde som anger om standardmedlemskapsprovidern kräver att användaren svarar på en lösenordsfråga för lösenordsåterställning och hämtning.

UserIsOnlineTimeWindow

Anger antalet minuter efter datum/tid-stämpeln för senaste aktivitet för en användare som användaren anses vara online under.

Metoder

Name Description
CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)

Lägger till en ny användare med angivna egenskapsvärden i datalagret och returnerar en statusparameter som anger att användaren har skapats eller orsaken till att användaren misslyckades.

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

Lägger till en ny användare med angivna egenskapsvärden och en unik identifierare i datalagret och returnerar en statusparameter som anger att användaren har skapats eller orsaken till att användaren misslyckades.

CreateUser(String, String, String)

Lägger till en ny användare med en angiven e-postadress till datalagret.

CreateUser(String, String)

Lägger till en ny användare i datalagret.

DeleteUser(String, Boolean)

Tar bort en användare från databasen.

DeleteUser(String)

Tar bort en användare och eventuella relaterade användardata från databasen.

FindUsersByEmail(String, Int32, Int32, Int32)

Hämtar en samling medlemskapsanvändare, på en sida med data, där e-postadressen innehåller den angivna e-postadress som ska matchas.

FindUsersByEmail(String)

Hämtar en samling medlemskapsanvändare där e-postadressen innehåller den angivna e-postadress som ska matchas.

FindUsersByName(String, Int32, Int32, Int32)

Hämtar en samling medlemskapsanvändare, på en sida med data, där användarnamnet innehåller det angivna användarnamnet som ska matchas.

FindUsersByName(String)

Hämtar en samling medlemskapsanvändare där användarnamnet innehåller det angivna användarnamnet som ska matchas.

GeneratePassword(Int32, Int32)

Genererar ett slumpmässigt lösenord med den angivna längden.

GetAllUsers()

Hämtar en samling med alla användare i databasen.

GetAllUsers(Int32, Int32, Int32)

Hämtar en samling med alla användare i databasen på datasidor.

GetNumberOfUsersOnline()

Hämtar antalet användare som för närvarande har åtkomst till ett program.

GetUser()

Hämtar informationen från datakällan och uppdaterar datum/tid-stämpeln för senaste aktivitet för den aktuella inloggade medlemskapsanvändaren.

GetUser(Boolean)

Hämtar informationen från datakällan för den aktuella inloggade medlemskapsanvändaren. Uppdaterar datum/tid-stämpeln för senaste aktivitet för den aktuella inloggade medlemskapsanvändaren, om det anges.

GetUser(Object, Boolean)

Hämtar information från datakällan för medlemskapsanvändaren som är associerad med den angivna unika identifieraren. Uppdaterar datum/tid-stämpeln för senaste aktivitet för användaren, om det anges.

GetUser(Object)

Hämtar information från datakällan för medlemskapsanvändaren som är associerad med den angivna unika identifieraren.

GetUser(String, Boolean)

Hämtar information från datakällan för den angivna medlemskapsanvändaren. Uppdaterar datum/tid-stämpeln för senaste aktivitet för användaren, om det anges.

GetUser(String)

Hämtar information från datakällan för den angivna medlemskapsanvändaren.

GetUserNameByEmail(String)

Hämtar ett användarnamn där e-postadressen för användaren matchar den angivna e-postadressen.

UpdateUser(MembershipUser)

Uppdaterar databasen med informationen för den angivna användaren.

ValidateUser(String, String)

Verifierar att det angivna användarnamnet och lösenordet är giltiga.

Händelser

Name Description
ValidatingPassword

Inträffar när en användare skapas, ett lösenord ändras eller ett lösenord återställs.

Gäller för

Se även