Udostępnij za pośrednictwem


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 programie Microsoft SQL Server lub w alternatywnym magazynie danych.

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

  • Zarządzanie hasłami, w tym tworzenie, zmienianie, pobieranie i resetowanie haseł itd. Opcjonalnie możesz skonfigurować członkostwo ASP.NET, aby wymagać pytania dotyczącego hasła i odpowiedzi na uwierzytelnianie żądań resetowania hasła lub pobierania dla użytkowników, którzy 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 właściwości profilu ASP.NET.

Klasa Membership opiera się na dostawcach członkostwa do komunikowania się ze źródłem danych. Program .NET Framework zawiera element SqlMembershipProvider, który przechowuje informacje o użytkowniku w bazie danych programu Microsoft SQL Server oraz ActiveDirectoryMembershipProviderelement , który umożliwia przechowywanie informacji o użytkowniku na serwerze trybu aplikacji usługi Active Directory lub 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 programu SqlMembershipProvider jest skonfigurowane do nawiązywania połączenia z lokalnym wystąpieniem programu 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 sieci Web 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 programu 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 swoich 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 uważany za 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, gdzie adres e-mail zawiera określony adres e-mail do dopasowania.

FindUsersByEmail(String, Int32, Int32, Int32)

Pobiera kolekcję użytkowników członkostwa na stronie danych, gdzie adres e-mail zawiera określony adres e-mail, który ma być zgodny.

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, która ma być zgodna.

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 określono.

GetUser(Object)

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

GetUser(Object, Boolean)

Pobiera informacje ze źródła danych dla 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 o informacje 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ż