Membership Класс

Определение

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

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

Примеры

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

Note

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

Important

В этом примере содержится текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию 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 класс, чтобы обеспечить удобный механизм проверки пользователей.

Note

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

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

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

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

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

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

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

Класс Membership полагается на поставщиков членства для взаимодействия с источником данных. Платформа .NET включает в себя 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 для веб-приложения можно указать с помощью раздела конфигурации membership в файле Web.config. Вы можете использовать подраздел поставщиков раздела членства, чтобы указать поставщика членства , отличного от одного из поставщиков по умолчанию. Например, следующий раздел membership удаляет поставщиков членства по умолчанию из текущей конфигурации приложения и добавляет новый поставщик с именем 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, String, String, String, Boolean, MembershipCreateStatus)

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

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

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

CreateUser(String, String, String)

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

CreateUser(String, String)

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

DeleteUser(String, Boolean)

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

DeleteUser(String)

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

FindUsersByEmail(String, Int32, Int32, Int32)

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

FindUsersByEmail(String)

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

FindUsersByName(String, Int32, Int32, Int32)

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

FindUsersByName(String)

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

GeneratePassword(Int32, Int32)

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

GetAllUsers()

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

GetAllUsers(Int32, Int32, Int32)

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

GetNumberOfUsersOnline()

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

GetUser()

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

GetUser(Boolean)

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

GetUser(Object, Boolean)

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

GetUser(Object)

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

GetUser(String, Boolean)

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

GetUser(String)

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

GetUserNameByEmail(String)

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

UpdateUser(MembershipUser)

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

ValidateUser(String, String)

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

События

Имя Описание
ValidatingPassword

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

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

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