Membership Класс

Определение

Проверяет учетные данные пользователя и управляет параметрами пользователей. Этот класс не наследуется.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Наследование
Membership

Примеры

В следующем примере кода показана страница входа для приложения ASP.NET, настроенного для использования проверки подлинности на основе форм и ASP.NET членства. Если предоставленные учетные данные пользователя недопустимы, пользователю отображается сообщение. В противном случае пользователь перенаправляется на исходный запрошенный URL-адрес с помощью RedirectFromLoginPage метода.

Примечание

ASP.NET элементы управления для входа (Login, , LoginView, LoginStatusиLoginNamePasswordRecovery) инкапсулируют практически всю логику, необходимую для запроса пользователей учетных данных и проверки учетных данных в системе членства и могут использоваться вместо программной проверки с помощью Membership класса.

Важно!

В этом примере содержится текстовое поле, которое принимает введенные пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

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

Комментарии

Этот Membership класс используется в приложениях ASP.NET для проверки учетных данных пользователя и управления параметрами пользователя, такими как пароли и адреса электронной почты. Класс Membership можно использовать самостоятельно или в сочетании с FormsAuthentication созданием полной системы для проверки подлинности пользователей веб-приложения или сайта. Элемент Login управления инкапсулирует Membership класс, чтобы предоставить удобный механизм проверки пользователей.

Примечание

Если вы не знакомы с функциями членства в ASP.NET, ознакомьтесь с разделом "Общие сведения о членстве", прежде чем продолжить. Список других разделов, связанных с членством, см. в разделе "Управление пользователями с помощью членства".

Класс Membership предоставляет средства для:

  • Создание новых пользователей.

  • Хранение сведений о членстве (имена пользователей, пароли, адреса электронной почты и вспомогательные данные) в Microsoft SQL Server или в альтернативном хранилище данных.

  • Проверка подлинности пользователей, посещающих сайт. Вы можете выполнять проверку подлинности пользователей программными средствами или использовать Login элемент управления для создания полной системы проверки подлинности, которая требует небольшого или отсутствия кода.

  • Управление паролями, включая создание, изменение, извлечение и сброс их и т. д. При необходимости можно настроить ASP.NET членство, чтобы требовать вопрос пароля и ответить на запросы на проверку подлинности сброса пароля или получения запросов для пользователей, которые забыли свой пароль.

Хотя ASP.NET членство является самостоятельной функцией в ASP.NET Для проверки подлинности, ее можно интегрировать с ASP.NET управление ролями для предоставления служб авторизации для вашего сайта. Членство также можно интегрировать с пользователем System.Web.Profile ASP.NET для предоставления настройки для конкретного приложения, которая может быть адаптирована для отдельных пользователей. Дополнительные сведения см. в разделе "Общие сведения об управлении ролями" и ASP.NET "Общие сведения о свойствах профиля".

Класс Membership полагается на поставщиков членства для взаимодействия с источником данных. В платформа .NET Framework есть SqlMembershipProviderданные пользователя, которые хранятся в базе данных Microsoft SQL Server, а ActiveDirectoryMembershipProviderтакже сведения о пользователе, которые позволяют хранить сведения о пользователях на сервере Active Directory или в режиме приложений Active Directory (ADAM). Вы также можете реализовать настраиваемый поставщик членства для взаимодействия с альтернативным источником данных, который может использоваться классом Membership . Настраиваемые поставщики членства наследуют абстрактный MembershipProvider класс. Дополнительные сведения см. в разделе "Реализация поставщика членства".

По умолчанию ASP.NET членство включено для всех ASP.NET приложений. Поставщик членства по умолчанию — это SqlMembershipProvider и указывается в конфигурации компьютера с именем AspNetSqlProvider. Экземпляр по SqlMembershipProvider умолчанию настроен для подключения к локальному экземпляру Microsoft SQL Server.

Вы можете изменить параметры по умолчанию, чтобы указать другой SqlMembershipProvider AspNetSqlProvider экземпляр в качестве поставщика по умолчанию или указать экземпляр настраиваемого поставщика в качестве поставщика по умолчанию для приложения ASP.NET с помощью файла Web.config. Вы можете указать конфигурацию членства ASP.NET для веб-приложения, используя раздел конфигурации членства в файле Web.config. Вы можете использовать подраздел поставщиков раздела членства, чтобы указать поставщика членства , отличного от одного из поставщиков по умолчанию. Например, в следующем разделе членства удаляются поставщики членства по умолчанию из текущей конфигурации приложения и добавляется новый поставщик с именемSqlProvider, который подключается к экземпляру SQL Server с именем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>  

Свойства

ApplicationName

Возвращает или задает имя приложения.

EnablePasswordReset

Возвращает значение, показывающее, настроена ли в текущем поставщике участия возможность сброса пользователями собственных паролей.

EnablePasswordRetrieval

Возвращает значение, показывающее, настроена ли в текущем поставщике участия возможность извлечения пользователями собственных паролей.

HashAlgorithmType

Идентификатор алгоритма, использующийся для хэширования паролей.

MaxInvalidPasswordAttempts

Получает количество попыток ввода недействительного пароля или контрольного ответа, по достижении которого авторизованный пользователь блокируется.

MinRequiredNonAlphanumericCharacters

Получает минимальное количество специальных символов, которые должны присутствовать в допустимом пароле.

MinRequiredPasswordLength

Получает минимальную длину пароля.

PasswordAttemptWindow

Возвращает интервал времени, которое должно пройти между отслеживанием последовательных попыток ввода недействительного пароля или контрольного ответа.

PasswordStrengthRegularExpression

Возвращает регулярное выражение, используемое для обработки пароля.

Provider

Возвращает ссылку на поставщика участия по умолчанию для приложения.

Providers

Возвращает коллекцию поставщиков участия для приложения ASP.NET.

RequiresQuestionAndAnswer

Возвращает значение, показывающее, настроен ли поставщик участия по умолчанию, чтобы запрашивать у пользователя ответ на контрольный вопрос для изменения или извлечения пароля.

UserIsOnlineTimeWindow

Задает время в минутах после отметки с датой и временем последних действий для учетной записи пользователя, в течение которых считается, что пользователь находится в оперативном режиме.

Методы

CreateUser(String, String)

Добавляет нового пользователя в хранилище данных.

CreateUser(String, String, String)

Добавляет в хранилище данных нового пользователя с указанным адресом электронной почты.

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

Добавляет в хранилище данных нового пользователя со значениями указанного свойства и возвращает параметр состояния, который сообщает об успешном создании пользователя или содержит причину, по которой не удалось создать пользователя.

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

Добавляет в хранилище данных нового пользователя со значениями указанного свойства и уникальным идентификатором, и возвращает параметр состояния, который сообщает об успешном создании пользователя или содержит причину, по которой не удалось создать пользователя.

DeleteUser(String)

Удаляет пользователя и любые связанные с ним данные из базы данных.

DeleteUser(String, Boolean)

Удаляет пользователя из базы данных.

FindUsersByEmail(String)

Возвращает коллекцию авторизованных пользователей, адреса электронной почты которых соответствуют указанному адресу электронной почты.

FindUsersByEmail(String, Int32, Int32, Int32)

Возвращает коллекцию пользователей членства на странице данных, где адрес электронной почты содержит часть, совпадающую с указанным значением.

FindUsersByName(String)

Возвращает коллекцию пользователей членства, у которых часть имени совпадает с указанным значением.

FindUsersByName(String, Int32, Int32, Int32)

Возвращает коллекцию пользователей членства на странице данных, где имя пользователя совпадает с указанным значением.

GeneratePassword(Int32, Int32)

Формирует случайный пароль указанной длины.

GetAllUsers()

Возвращает коллекцию всех пользователей в базе данных.

GetAllUsers(Int32, Int32, Int32)

Возвращает коллекцию всех пользователей в базе данных на странице данных.

GetNumberOfUsersOnline()

Получает количество пользователей, осуществляющих текущий доступ к приложению.

GetUser()

Возвращает информацию из источника данных и обновляет отметку о времени и дате последней операции для текущего пользователя членства, вошедшего в систему.

GetUser(Boolean)

Возвращает информацию из источника данных для текущего вошедшего пользователя членства. Обновляет отметку о времени и дате последней активности для текущего вошедшего пользователя, если это указано.

GetUser(Object)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором.

GetUser(Object, Boolean)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

GetUser(String)

Возвращает из источника данных информацию для указанного пользователя членства.

GetUser(String, Boolean)

Возвращает из источника данных информацию для указанного пользователя членства. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

GetUserNameByEmail(String)

Возвращает имя пользователя, для которого адрес электронной почты совпадает с указанным адресом электронной почты.

UpdateUser(MembershipUser)

Обновляет базу данных данными для указанного пользователя.

ValidateUser(String, String)

Проверяет допустимость предоставленного имени пользователя и пароля.

События

ValidatingPassword

Происходит при создании пользователя, изменении пароля или сбросе пароля.

Применяется к

См. также раздел