Поделиться через


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

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

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

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

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