Membership Klasa

Definicja

Weryfikuje poświadczenia użytkownika i zarządza ustawieniami użytkownika. Klasa ta nie może być dziedziczona.

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

Przykłady

Poniższy przykład kodu przedstawia stronę logowania dla aplikacji ASP.NET skonfigurowanej do korzystania z uwierzytelniania formularzy i członkostwa w ASP.NET. Jeśli podane poświadczenia użytkownika są nieprawidłowe, zostanie wyświetlony komunikat dla użytkownika. W przeciwnym razie użytkownik zostanie przekierowany do pierwotnie żądanego adresu URL przy użyciu RedirectFromLoginPage metody .

Uwaga

Kontrolki logowania ASP.NET (Login, LoginView, LoginStatus, LoginNamei PasswordRecovery) hermetyzują praktycznie całą logikę wymaganą do monitowania użytkowników o poświadczenia i weryfikacji poświadczeń w systemie członkostwa i mogą być używane zamiast sprawdzania programowego przy użyciu Membership klasy .

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

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

Uwagi

Klasa Membership jest używana w aplikacjach ASP.NET do weryfikowania poświadczeń użytkownika i zarządzania ustawieniami użytkownika, takimi jak hasła i adresy e-mail. Klasa Membership może być używana samodzielnie lub w połączeniu z elementem FormsAuthentication w celu utworzenia kompletnego systemu uwierzytelniania użytkowników aplikacji internetowej lub witryny. Kontrolka Login hermetyzuje klasę Membership , aby zapewnić wygodny mechanizm sprawdzania poprawności użytkowników.

Uwaga

Jeśli nie znasz funkcji członkostwa ASP.NET, zobacz Wprowadzenie do członkostwa przed kontynuowaniem. Aby uzyskać listę innych tematów związanych z członkostwem, zobacz Zarządzanie użytkownikami przy użyciu członkostwa.

Klasa Membership zapewnia udogodnienia dla:

  • Tworzenie nowych użytkowników.

  • Przechowywanie informacji o członkostwie (nazw użytkowników, haseł, adresów e-mail i danych pomocniczych) w Microsoft SQL Server lub w alternatywnym magazynie danych.

  • Uwierzytelnianie użytkowników odwiedzających witrynę. Możesz uwierzytelniać użytkowników programowo lub użyć kontrolki Login do utworzenia kompletnego systemu uwierzytelniania, który wymaga niewielkiej ilości kodu lub nie ma go.

  • Zarządzanie hasłami, w tym tworzenie, zmienianie, pobieranie i resetowanie haseł itd. Opcjonalnie możesz skonfigurować ASP.NET członkostwa, aby wymagać pytania dotyczącego hasła i odpowiadania na uwierzytelnianie żądań resetowania lub pobierania haseł dla użytkowników, którzy nie zapomnieli hasła.

Mimo że członkostwo ASP.NET jest funkcją samodzielnej w ASP.NET Na potrzeby uwierzytelniania, można ją zintegrować z zarządzaniem rolami ASP.NET w celu zapewnienia usług autoryzacji dla witryny. Członkostwo można również zintegrować z użytkownikiem System.Web.Profile ASP.NET w celu zapewnienia dostosowania specyficznego dla aplikacji, które można dostosować do poszczególnych użytkowników. Aby uzyskać szczegółowe informacje, zobacz Omówienie zarządzania rolami i ASP.NET właściwości profilu.

Klasa Membership opiera się na dostawcach członkostwa do komunikowania się ze źródłem danych. .NET Framework zawiera element SqlMembershipProvider, który przechowuje informacje o użytkowniku w bazie danych Microsoft SQL Server oraz ActiveDirectoryMembershipProviderelement , który umożliwia przechowywanie informacji o użytkowniku na serwerze usługi Active Directory lub Trybu aplikacji usługi Active Directory (ADAM). Można również zaimplementować niestandardowego dostawcę członkostwa, aby komunikować się z alternatywnym źródłem danych, które może być używane przez klasę Membership . Niestandardowi dostawcy członkostwa dziedziczą klasę abstrakcyjną MembershipProvider . Aby uzyskać więcej informacji, zobacz Implementowanie dostawcy członkostwa.

Domyślnie członkostwo ASP.NET jest włączone dla wszystkich aplikacji ASP.NET. Domyślny dostawca członkostwa to SqlMembershipProvider i jest określony w konfiguracji maszyny o nazwie AspNetSqlProvider. Domyślne wystąpienie obiektu SqlMembershipProvider jest skonfigurowane do nawiązywania połączenia z lokalnym wystąpieniem Microsoft SQL Server.

Możesz zmodyfikować ustawienia domyślne, aby określić SqlMembershipProvider inne niż AspNetSqlProvider wystąpienie jako domyślnego dostawcę, lub określić wystąpienie dostawcy niestandardowego jako domyślnego dostawcę dla aplikacji ASP.NET przy użyciu pliku Web.config. Konfigurację członkostwa ASP.NET dla aplikacji internetowej można określić przy użyciu sekcji konfiguracji członkostwa w pliku Web.config. Możesz użyć podsekcji dostawcy w sekcji członkostwa, aby określić dostawcę członkostwa innego niż jeden z domyślnych dostawców. Na przykład poniższa sekcja członkostwa usuwa domyślnych dostawców członkostwa z bieżącej konfiguracji aplikacji i dodaje nowego dostawcę o nazwie SqlProvider , który łączy się z wystąpieniem SQL Server o nazwie 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>  

Właściwości

ApplicationName

Pobiera lub ustawia nazwę aplikacji.

EnablePasswordReset

Pobiera wartość wskazującą, czy bieżący dostawca członkostwa jest skonfigurowany tak, aby umożliwić użytkownikom resetowanie haseł.

EnablePasswordRetrieval

Pobiera wartość wskazującą, czy bieżący dostawca członkostwa jest skonfigurowany tak, aby umożliwić użytkownikom pobieranie haseł.

HashAlgorithmType

Identyfikator algorytmu używanego do tworzenia skrótów haseł.

MaxInvalidPasswordAttempts

Pobiera liczbę nieprawidłowych prób hasła lub odpowiedzi na hasło, zanim użytkownik członkostwa zostanie zablokowany.

MinRequiredNonAlphanumericCharacters

Pobiera minimalną liczbę znaków specjalnych, które muszą być obecne w prawidłowym haśle.

MinRequiredPasswordLength

Pobiera minimalną długość wymaganą dla hasła.

PasswordAttemptWindow

Pobiera przedział czasu, między którym śledzone są kolejne nieudane próby podania prawidłowego hasła lub odpowiedzi na hasło.

PasswordStrengthRegularExpression

Pobiera wyrażenie regularne używane do oceny hasła.

Provider

Pobiera odwołanie do domyślnego dostawcy członkostwa dla aplikacji.

Providers

Pobiera kolekcję dostawców członkostwa dla aplikacji ASP.NET.

RequiresQuestionAndAnswer

Pobiera wartość wskazującą, czy domyślny dostawca członkostwa wymaga od użytkownika odpowiedzi na pytanie dotyczące hasła dotyczące resetowania i pobierania hasła.

UserIsOnlineTimeWindow

Określa liczbę minut po dacie/dacie ostatniego działania dla użytkownika, podczas którego użytkownik jest traktowany w trybie online.

Metody

CreateUser(String, String)

Dodaje nowego użytkownika do magazynu danych.

CreateUser(String, String, String)

Dodaje nowego użytkownika z określonym adresem e-mail do magazynu danych.

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

Dodaje nowego użytkownika z określonymi wartościami właściwości do magazynu danych i zwraca parametr stanu wskazujący, że użytkownik został pomyślnie utworzony lub przyczyna niepowodzenia tworzenia użytkownika.

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

Dodaje nowego użytkownika z określonymi wartościami właściwości i unikatowym identyfikatorem do magazynu danych i zwraca parametr stanu wskazujący, że użytkownik został pomyślnie utworzony lub przyczyna niepowodzenia tworzenia użytkownika.

DeleteUser(String)

Usuwa użytkownika i wszystkie powiązane dane użytkownika z bazy danych.

DeleteUser(String, Boolean)

Usuwa użytkownika z bazy danych.

FindUsersByEmail(String)

Pobiera kolekcję użytkowników członkostwa, na których adres e-mail zawiera określony adres e-mail zgodny.

FindUsersByEmail(String, Int32, Int32, Int32)

Pobiera kolekcję użytkowników członkostwa na stronie danych, na której adres e-mail zawiera określony adres e-mail do dopasowania.

FindUsersByName(String)

Pobiera kolekcję użytkowników członkostwa, w których nazwa użytkownika zawiera określoną nazwę użytkownika, która ma być zgodna.

FindUsersByName(String, Int32, Int32, Int32)

Pobiera kolekcję użytkowników członkostwa na stronie danych, gdzie nazwa użytkownika zawiera określoną nazwę użytkownika do dopasowania.

GeneratePassword(Int32, Int32)

Generuje losowe hasło o określonej długości.

GetAllUsers()

Pobiera kolekcję wszystkich użytkowników w bazie danych.

GetAllUsers(Int32, Int32, Int32)

Pobiera kolekcję wszystkich użytkowników w bazie danych na stronach danych.

GetNumberOfUsersOnline()

Pobiera liczbę użytkowników, którzy obecnie uzyskują dostęp do aplikacji.

GetUser()

Pobiera informacje ze źródła danych i aktualizuje sygnaturę daty/godziny ostatniego działania dla bieżącego zalogowanego użytkownika członkostwa.

GetUser(Boolean)

Pobiera informacje ze źródła danych dla bieżącego zalogowanego użytkownika członkostwa. Aktualizuje sygnaturę daty/godziny ostatniego działania dla bieżącego zalogowanego użytkownika członkostwa, jeśli zostanie określony.

GetUser(Object)

Pobiera informacje ze źródła danych użytkownika członkostwa skojarzonego z określonym unikatowym identyfikatorem.

GetUser(Object, Boolean)

Pobiera informacje ze źródła danych użytkownika członkostwa skojarzonego z określonym unikatowym identyfikatorem. Aktualizuje sygnaturę daty/godziny ostatniego działania dla użytkownika, jeśli zostanie określona.

GetUser(String)

Pobiera informacje ze źródła danych dla określonego użytkownika członkostwa.

GetUser(String, Boolean)

Pobiera informacje ze źródła danych dla określonego użytkownika członkostwa. Aktualizuje sygnaturę daty/godziny ostatniego działania dla użytkownika, jeśli zostanie określona.

GetUserNameByEmail(String)

Pobiera nazwę użytkownika, w której adres e-mail użytkownika jest zgodny z określonym adresem e-mail.

UpdateUser(MembershipUser)

Aktualizuje bazę danych przy użyciu informacji dla określonego użytkownika.

ValidateUser(String, String)

Sprawdza, czy podana nazwa użytkownika i hasło są prawidłowe.

Zdarzenia

ValidatingPassword

Występuje po utworzeniu użytkownika, zmianie hasła lub zresetowaniu hasła.

Dotyczy

Zobacz też