Разблокировка и утверждение учетных записей пользователей (VB)

Скотт Митчелл

Замечание

С момента написания этой статьи провайдеры членства ASP.NET были заменены посредством ASP.NET Identity. Настоятельно рекомендуется обновить приложения для использования платформы ASP.NET identity, а не поставщиков членства, которые были представлены в то время, когда эта статья была написана. ASP.NET Identity имеет ряд преимуществ по сравнению с системой членства ASP.NET, в том числе:

  • Улучшенная производительность
  • Улучшенная расширяемость и возможность тестирования
  • Поддержка OAuth, OpenID Connect и двухфакторной проверки подлинности
  • Поддержка удостоверений на основе утверждений
  • Улучшение взаимодействия с ASP.Net Core

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

Введение

Наряду с именем пользователя, паролем и электронной почтой каждая учетная запись пользователя имеет два поля состояния, которые определяют, может ли пользователь войти на сайт: заблокирован и утвержден. Пользователь автоматически блокируется, если они предоставляют недопустимые учетные данные в течение указанного количества минут (параметры по умолчанию блокируют пользователя после 5 недопустимых попыток входа в течение 10 минут). Утвержденное состояние полезно в сценариях, когда некоторые действия должны выполняться до того, как новый пользователь сможет войти на сайт. Например, пользователю может потребоваться сначала проверить свой адрес электронной почты или утвердить администратором, прежде чем иметь возможность входа.

Так как заблокированный или неутвержденный пользователь не может войти в систему, это логично задаться вопросом, как эти статусы можно сбросить. ASP.NET не включает встроенные функции или элементы веб-управления для управления заблокированного доступа и подтвержденного статуса пользователей, отчасти потому, что эти решения должны обрабатываться в каждом конкретном случае для конкретного сайта. Некоторые сайты могут автоматически утвердить все новые учетные записи пользователей (поведение по умолчанию). Другие администраторы утверждают новые учетные записи или не утверждают пользователей, пока они не посещают ссылку, отправленную на адрес электронной почты, указанный при регистрации. Аналогичным образом, некоторые сайты могут блокировать пользователей, пока администратор не сбрасывает свой статус, а другие сайты отправляют сообщение электронной почты заблокированным пользователю с URL-адресом, который он может посетить, чтобы разблокировать свою учетную запись.

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

Шаг 1. Управление заблокированными и активированными статусами пользователей

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

В этом руководстве мы будем использовать две ASP.NET страницы: ManageUsers.aspx и UserInformation.aspx. ManageUsers.aspx представляет список учетных записей пользователей в системе, в то время как UserInformation.aspx дает возможность администратору управлять состояниями утверждения и блокировки конкретного пользователя. Нашим первым делом будет расширение GridView в ManageUsers.aspx, чтобы включить HyperLinkField, который отображается в виде столбца ссылок. Мы хотим, чтобы каждая ссылка указывала на UserInformation.aspx?user=UserName, причем UserName — это имя редактируемого пользователя.

Замечание

Если вы скачали код для руководства по восстановлению и изменению паролей, возможно, вы заметили, что ManageUsers.aspx страница уже содержит набор ссылок "Управление" и UserInformation.aspx страница предоставляет интерфейс для изменения пароля выбранного пользователя. Я решил не реплицировать эту функцию в коде, связанном с этим руководством, так как она работала, обходя API членства и работая непосредственно с базой данных SQL Server, чтобы изменить пароль пользователя. Это руководство начинается с нуля со UserInformation.aspx страницы.

Откройте страницу ManageUsers.aspx и добавьте HyperLinkField в UserAccounts GridView. Задайте для свойства HyperLinkField Text значение "Manage" и его свойства DataNavigateUrlFields и DataNavigateUrlFormatString значениям UserName и "UserInformation.aspx?user={0}" соответственно. Эти параметры настраивают HyperLinkField таким образом, чтобы все гиперссылки отображали текст "Управление", но каждая ссылка передает соответствующее значение UserName в строку запроса.

После добавления HyperLinkField в GridView взгляните на ManageUsers.aspx страницу через браузер. Как показано на рисунке 1, каждая строка GridView теперь включает ссылку "Управление". Ссылка "Управление" для Bruce указывает на UserInformation.aspx?user=Bruce, в то время как ссылка "Управление" для Dave указывает на UserInformation.aspx?user=Dave.

Добавляет HyperLinkField

Рис. 1. HyperLinkField добавляет ссылку "Управление" для каждой учетной записи пользователя (щелкните, чтобы просмотреть изображение полного размера)

Мы создадим пользовательский интерфейс и код страницы UserInformation.aspx в данный момент, но сначала поговорим о том, как программно изменить заблокированные и утвержденные состояния пользователя. Класс MembershipUser имеетIsLockedOut и IsApproved свойства. Свойство IsLockedOut доступно только для чтения. Нет механизма программной блокировки пользователя; чтобы разблокировать пользователя, используйте метод класса MembershipUserUnlockUser. Свойство IsApproved доступно для чтения и записи. Чтобы сохранить изменения этого свойства, необходимо вызвать Membership метод классаUpdateUser, передавая измененный MembershipUser объект.

IsApproved Так как свойство доступно для чтения и записи, элемент управления CheckBox, вероятно, является лучшим элементом пользовательского интерфейса для настройки этого свойства. Однако checkBox не будет работать для IsLockedOut свойства, так как администратор не может заблокировать пользователя, она может разблокировать только пользователя. Подходящий пользовательский интерфейс для IsLockedOut свойства — это кнопка, которая при щелчке разблокирует учетную запись пользователя. Эта кнопка должна быть включена только в том случае, если пользователь заблокирован.

UserInformation.aspxСоздание страницы

Теперь мы готовы реализовать пользовательский интерфейс в UserInformation.aspx. Откройте эту страницу и добавьте следующие веб-элементы управления:

  • Элемент управления HyperLink, который при щелчке возвращает администратора на страницу ManageUsers.aspx .
  • Веб-элемент управления Label для отображения имени выбранного пользователя. Установите для этой метки значение ID, равное UserNameLabel, и очистите его свойство Text.
  • Элемент управления CheckBox с именем IsApproved. Установите для свойства AutoPostBack значение True.
  • Элемент управления Label для отображения даты последней блокировки пользователя. Назовите эту метку LastLockedOutDateLabel и очистите её Text свойство.
  • Кнопка для разблокировки пользователя. Назовите эту кнопку UnlockUserButton и задайте для свойства Text "Разблокировать пользователя".
  • Элемент управления "Метка" для отображения сообщений о состоянии, таких как "Утвержденное состояние пользователя было обновлено". Присвойте этому элементу управления StatusMessageимя, очистите его Text свойство и задайте для него значение CssClassImportant. (Класс CSS определен в файле стилей; он отображает соответствующий текст крупным красным шрифтом.)

После добавления этих элементов управления представление конструктора в Visual Studio должно выглядеть примерно так, как на снимке экрана на рис. 2.

Создание пользовательского интерфейса для UserInformation.aspx

Рис. 2. Создание пользовательского интерфейса для UserInformation.aspx (щелкните, чтобы просмотреть изображение полного размера)

После завершения пользовательского интерфейса наша следующая задача — задать IsApproved checkBox и другие элементы управления на основе данных выбранного пользователя. Создайте обработчик событий для события страницы Load и добавьте следующий код:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     If Not Page.IsPostBack Then
          ' If querystring value is missing, send the user to ManageUsers.aspx
          Dim userName As String = Request.QueryString("user")
          If String.IsNullOrEmpty(userName) Then
               Response.Redirect("ManageUsers.aspx")
          End If

          ' Get information about this user
          Dim usr As MembershipUser = Membership.GetUser(userName)
          If usr Is Nothing Then
               Response.Redirect("ManageUsers.aspx")

          End If

          UserNameLabel.Text = usr.UserName
          IsApproved.Checked = usr.IsApproved

          If usr.LastLockoutDate.Year < 2000 Then
               LastLockoutDateLabel.Text = String.Empty
          Else
               LastLockoutDateLabel.Text = usr.LastLockoutDate.ToShortDateString()
               UnlockUserButton.Enabled = usr.IsLockedOut
          End If
     End If
End Sub

Указанный выше код начинает с проверки, что это первый визит на страницу, а не последующий постбэк. Затем он считывает имя пользователя, переданное через user поле запроса, и извлекает сведения об этой учетной записи пользователя с помощью Membership.GetUser(username) метода. Если имя пользователя не было предоставлено с помощью запроса или если указанный пользователь не найден, администратор отправляется на ManageUsers.aspx страницу.

Значение MembershipUser объекта UserName затем отображается в поле UserNameLabel, а состояние IsApproved CheckBox устанавливается в зависимости от значения свойства IsApproved.

Свойство MembershipUser объекта LastLockoutDate возвращает DateTime значение, указывающее, когда пользователь был заблокирован в последний раз. Если пользователь никогда не был заблокирован, возвращаемое значение зависит от поставщика членства. При создании новой учетной записи, SqlMembershipProvider устанавливает поле LastLockoutDate таблицы aspnet_Membership на 1754-01-01 12:00:00 AM. Приведенный выше код отображает пустую строку в LastLockoutDateLabel, если свойство LastLockoutDate возникает до 2000 года; в противном случае в метке отображается часть даты свойства LastLockoutDate. UnlockUserButton Свойство Enabled установлено в состояние заблокированного пользователя, что означает, что эта кнопка будет активирована только в том случае, если пользователь заблокирован.

Пройдите некоторое время, чтобы проверить UserInformation.aspx страницу через браузер. Конечно, вам потребуется начать с ManageUsers.aspx и выбрать учетную запись пользователя для управления. По прибытии в UserInformation.aspx, обратите внимание, что галочка в CheckBox установлена только если пользователь утвержден. Если пользователь когда-либо был заблокирован, отображается последняя заблокированная дата. Кнопка "Разблокировать пользователя" включена только в том случае, если пользователь в данный момент заблокирован. Проверка или отмена IsApproved флажка или нажатие кнопки "Разблокировать пользователя" приводит к обратной отправке, но изменения не вносятся в учетную запись пользователя, так как мы еще не создали обработчики событий для этих событий.

Вернитесь в Visual Studio и создайте обработчики событий для события IsApproved CheckBox CheckedChanged и события UnlockUser Button Click. В обработчике CheckedChanged событий задайте свойство пользователя IsApproved значением свойства Checked CheckBox, а затем сохраните изменения с помощью вызова Membership.UpdateUser. В обработчике Click событий просто вызовите метод UnlockUser объекта MembershipUser. Отобразите подходящее сообщение в StatusMessage метке в обоих обработчиках событий.

Protected Sub IsApproved_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles IsApproved.CheckedChanged
     'Toggle the user's approved status
     Dim userName As String = Request.QueryString("user")
     Dim usr As MembershipUser = Membership.GetUser(userName)
     usr.IsApproved = IsApproved.Checked
     Membership.UpdateUser(usr)

     StatusMessage.Text = "The user's approved status has been updated."

End Sub

Protected Sub UnlockUserButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles UnlockUserButton.Click
     'Unlock the user account
     Dim userName As String = Request.QueryString("user")
     Dim usr As MembershipUser = Membership.GetUser(userName)
     usr.UnlockUser()
     UnlockUserButton.Enabled = False

     StatusMessage.Text = "The user account has been unlocked."
End Sub

UserInformation.aspxТестирование страницы

С этими обработчиками событий вернитесь на страницу и отклоните пользователя. Как показано на рисунке 3, на странице должно появиться краткое сообщение, указывающее, что свойство пользователя IsApproved было успешно изменено.

Крис не был одобрен

Рис. 3. Крис был неутвержден (щелкните, чтобы просмотреть изображение полного размера)

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

Крис не может войти, так как его учетная запись не утверждена

Рис. 4. Крис не может войти, так как его учетная запись не утверждена (щелкните, чтобы просмотреть изображение полного размера)

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

Вернитесь на ManageUsers.aspx страницу и щелкните ссылку "Управление" для заблокированного пользователя. Как показано на рисунке 5, если вы видите значение в LastLockedOutDateLabel, кнопка «Разблокировать пользователя» должна быть активирована. Нажмите кнопку "Разблокировать пользователя", чтобы разблокировать учетную запись пользователя. После разблокировки пользователя он сможет войти еще раз.

Дэйв был заблокирован из системы

Рис. 5. Дэйв был заблокирован из системы (щелкните, чтобы просмотреть изображение полного размера)

Шаг 2. Определение утверждённого статуса новых пользователей

Утвержденное состояние полезно в сценариях, когда необходимо выполнить некоторые действия, прежде чем новый пользователь сможет войти и получить доступ к функциям конкретного пользователя сайта. Например, вы можете запустить частный веб-сайт, где все страницы, кроме страниц входа и регистрации, доступны только для пользователей, прошедших проверку подлинности. Но что произойдет, если незнакомец достигает веб-сайта, находит страницу регистрации и создает учетную запись? Чтобы предотвратить это, вы можете переместить страницу Administration регистрации в папку и потребовать, чтобы администратор вручную создавал каждую учетную запись. Кроме того, вы можете разрешить любому пользователю регистрироваться, но запретить доступ к сайту, пока администратор не утвердит учетную запись пользователя.

По умолчанию элемент управления CreateUserWizard утверждает новые учетные записи. Это поведение можно настроить с помощью свойства элемента управленияDisableCreatedUser. Задайте значение True для этого свойства, чтобы новые учетные записи пользователей не утверждались.

Замечание

По умолчанию элемент управления CreateUserWizard автоматически регистрируется в новой учетной записи пользователя. Это поведение определяется свойством элемента управленияLoginCreatedUser. Так как неутвержденные пользователи не могут войти на сайт, если DisableCreatedUserTrue новая учетная запись пользователя не входит в систему, независимо от значения LoginCreatedUser свойства.

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

Шаг 3. Утверждение пользователей путем проверки адреса электронной почты

Многие веб-сайты, поддерживающие учетные записи пользователей, не утверждают новых пользователей до тех пор, пока они не проверяют предоставленный адрес электронной почты при регистрации. Этот процесс проверки обычно используется для того, чтобы препятствовать действиям ботов, спамеров и других недоброжелателей, так как он требует уникального, проверенного адреса электронной почты и добавляет дополнительный шаг в процесс регистрации. При использовании этой модели при регистрации нового пользователя они отправляют сообщение электронной почты, которое содержит ссылку на страницу проверки. Перейдя по ссылке, пользователь доказал, что он получил сообщение электронной почты и, следовательно, указан действительный адрес электронной почты. Страница проверки отвечает за утверждение пользователя. Это может произойти автоматически, тем самым утвердив любого пользователя, который достигает этой страницы, или только после того, как пользователь предоставит некоторую дополнительную информацию, например CAPTCHA.

Чтобы адаптировать под этот рабочий процесс, необходимо сначала обновить страницу создания учетной записи, чтобы новые пользователи оставались неподтверждёнными. EnhancedCreateUserWizard.aspx Откройте страницу в папке Membership и задайте для свойства элемента управления DisableCreatedUser CreateUserWizard значение True.

Затем необходимо настроить элемент управления CreateUserWizard, чтобы отправить пользователю сообщение электронной почты с инструкциями по проверке учетной записи. В частности, мы добавим в электронное письмо ссылку на страницу Verification.aspx (которая еще не создана), передавая нового пользователя UserId через строку запроса. Страница Verification.aspx будет искать указанного пользователя и пометит его как утвержденного.

Отправка сообщения электронной почты проверки новым пользователям

Чтобы отправить сообщение электронной почты из элемента управления CreateUserWizard, настройте его MailDefinition свойство соответствующим образом. Как описано в предыдущем руководстве, элементы управления ChangePassword и PasswordRecovery включают MailDefinition свойство , которое работает так же, как и элемент управления CreateUserWizard.

Замечание

Чтобы использовать MailDefinition свойство, необходимо указать параметры доставки почты в Web.config. Дополнительные сведения см. в статье "Отправка электронной почты" в ASP.NET.

Начните с создания нового шаблона электронной почты с именем CreateUserWizard.txt в папке EmailTemplates . Используйте следующий текст для шаблона:

Hello <%UserName%>! Welcome aboard.

Your new account is almost ready, but before you can login you must first visit:
<%VerificationUrl%>

Once you have visited the verification URL you will be redirected to the login page.

If you have any problems or questions, please reply to this email.

Thanks!

Установите свойство MailDefinition в значение "~/EmailTemplates/CreateUserWizard.txt" и свойство Subject в значение "Добро пожаловать на мой веб-сайт!" Активируйте свою учетную запись".

Обратите внимание, что шаблон CreateUserWizard.txt для электронной почты содержит заполнитель <%VerificationUrl%>. Здесь будет размещен URL-адрес страницы Verification.aspx . CreateUserWizard автоматически заменяет заполнители <%UserName%> и <%Password%> именем пользователя и паролем новой учетной записи, но нет встроенного заполнителя <%VerificationUrl%>. Нам нужно вручную заменить его соответствующим URL-адресом проверки.

Для этого создайте обработчик событий для события CreateUserWizard SendingMail и добавьте следующий код:

Protected Sub NewUserWizard_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles NewUserWizard.SendingMail
     'Get the UserId of the just-added user
     Dim newUser As MembershipUser = Membership.GetUser(NewUserWizard.UserName)
     Dim newUserId As Guid = CType(newUser.ProviderUserKey, Guid)

     ' Determine the full verification URL (i.e., http://yoursite.com/Verification.aspx?ID=...)
     Dim urlBase As String = Request.Url.GetLeftPart(UriPartial.Authority) & Request.ApplicationPath
     Dim verifyUrl As String = "/Verification.aspx?ID=" + newUserId.ToString()
     Dim fullUrl As String = urlBase & verifyUrl

     ' Replace <%VerificationUrl%> with the appropriate URL and querystring

     e.Message.Body = e.Message.Body.Replace("<%VerificationUrl%>", fullUrl)
End Sub

Событие SendingMail запускается после события CreatedUser, что означает, что к тому времени, когда указанный выше обработчик событий выполняется, новая учетная запись пользователя уже создана. Мы можем получить доступ к значению нового пользователя UserId , вызвав Membership.GetUser метод, передав введенный в UserName элемент управления CreateUserWizard. Затем формируется URL-адрес проверки. Оператор Request.Url.GetLeftPart(UriPartial.Authority) возвращает часть URL; http://yourserver.com возвращает путь, в котором находится корневая часть приложения. Затем URL-адрес проверки определяется как Verification.aspx?ID=userId. Затем эти две строки объединяются для формирования полного URL-адреса. Наконец, в тексте сообщения электронной почты (e.Message.Body) все вхождения <%VerificationUrl%> заменены на полный URL-адрес.

В конечном итоге новые пользователи не одобряются, что означает, что они не могут войти на сайт. Кроме того, они автоматически отправляют сообщение электронной почты со ссылкой на URL-адрес проверки (см. рис. 6).

Новый пользователь получает сообщение электронной почты со ссылкой на URL-адрес проверки

Рис. 6. Новый пользователь получает сообщение электронной почты со ссылкой на URL-адрес проверки (щелкните, чтобы просмотреть изображение полного размера)

Замечание

На этапе по умолчанию элемента управления CreateUserWizard отображается сообщение о том, что учетная запись пользователя создана, и показывается кнопка "Продолжить". Щелкнув это, пользователь перейдет по URL-адресу, указанному свойством элемента управления ContinueDestinationPageUrl . Мастер CreateUserWizard в EnhancedCreateUserWizard.aspx настроен так, чтобы перенаправлять новых пользователей в ~/Membership/AdditionalUserInfo.aspx, который запрашивает у пользователя информацию о его домашнем городе, URL-адрес домашней страницы и личную подпись. Так как эти сведения могут добавляться только пользователями, вошедшего в систему, имеет смысл обновить это свойство, чтобы отправить пользователей обратно на домашнюю страницу сайта (~/Default.aspx). Кроме того, страница EnhancedCreateUserWizard.aspx или шаг CreateUserWizard должны быть дополнены, чтобы сообщить пользователю, что им было отправлено проверочное письмо, и их учетная запись не будет активирована, пока они не выполнят инструкции в этом письме. Я оставляю эти изменения в качестве упражнения для читателя.

Создание страницы проверки

Наша окончательная задача — создать страницу Verification.aspx . Добавьте эту страницу в корневую папку, связав ее с главной страницей Site.master . Как мы сделали с большинством предыдущих страниц содержимого, добавленных на сайт, удалите элемент управления "Контент", который ссылается LoginContent на ContentPlaceHolder, чтобы страница содержимого использовала содержимое главной страницы по умолчанию.

Добавьте веб-элемент управления Label Web на Verification.aspx страницу, задайте для него IDStatusMessage значение и удалите его текстовое свойство. Затем создайте Page_Load обработчик событий и добавьте следующий код:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     If String.IsNullOrEmpty(Request.QueryString("ID")) Then
          StatusMessage.Text = "The UserId was not included in the querystring..."
     Else
          Dim userId As Guid
          Try
               userId = New Guid(Request.QueryString("ID"))
          Catch
               StatusMessage.Text = "The UserId passed into the querystring is not in the proper format..."

               Exit Sub
          End Try

          Dim usr As MembershipUser = Membership.GetUser(userId)
          If usr Is Nothing Then
               StatusMessage.Text = "User account could not be found..."
          Else
               ' Approve the user
               usr.IsApproved = True
               Membership.UpdateUser(usr)
               StatusMessage.Text = "Your account has been approved. Please <a href=""Login.aspx"">login</a> to the site."

          End If
     End If
End Sub

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

На рисунке 7 показана Verification.aspx страница при посещении через браузер.

Учетная запись нового пользователя утверждена

Рис. 7. Учетная запись нового пользователя утверждена (щелкните, чтобы просмотреть изображение полного размера)

Сводка

Все учетные записи пользователей членства имеют два состояния, определяющие, может ли пользователь войти на сайт: IsLockedOut и IsApproved. Оба этих свойства должны быть True для входа пользователя.

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

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

Счастливое программирование!

Сведения о авторе

Скотт Митчелл, автор нескольких книг ASP/ASP.NET и основатель 4GuysFromRolla.com, работает с технологиями Microsoft Web с 1998 года. Скотт работает независимым консультантом, тренером и писателем. Его последняя книга — Sams Teach Yourself ASP.NET 2.0 за 24 часа. Со Скоттом можно связаться по mitchell@4guysfromrolla.com или через его блог на http://ScottOnWriting.NET.

Особое спасибо...

Эта серия учебников была проверена многими полезными рецензентами. Хотите просмотреть мои предстоящие статьи MSDN? Если да, напишите мне на mitchell@4GuysFromRolla.com