Конфигурирование и настройка Microsoft ASP.NET



         

Реализация аутентификации при помощи формы - часть 2


VB.NET

<script language="vb" runat="server"> Sub btnLogin_OnClick(sender as object, e as EventArgs) If FormsAuthentication.Authenticate(tbUserName.Text, _ tbPassword.Text) Then FormsAuthentication.RedirectFromLoginPage(tbUserName.Text, _ cbPersist.Checked) Else lblResults.Text = "Invalid Username and Password" End If End Sub </script>

Давайте построчно разберем этот код.

If FormsAuthentication.Authenticate(tbUserName.Text, _tbPassword.Text) Then

Сначала выполняется проверка того, совпадают ли введенные имя пользователя и пароль с сохраненными именем пользователя и паролем. В нашем примере имена пользователей и пароли хранятся в настроечном файле, поэтому для сравнения данных используется метод FormsAuthentication.Authenticate(). В больших и более сложных приложениях имена пользователей и пароли необходимо сохранять в базе данных, в которой их можно быстро изменить. В этом случае следует создать метод поиска в базе совпадающей пары и возвращения значение true или false. Этот метод можно использовать вместо метода FormsAuthentication.Authenticate(), и наш пример будет прекрасно работать. Если метод FormsAuthentication.Authenticate() или ваш собственный возвращают значение true, выполняется следующая строка кода.

FormsAuthentication.RedirectFromLoginPage(tbUserName.Text, _cbPersist.Checked)

Она вызывает метод FormsAuthentication.RedirectFromLoginPage(), который возвращает пользователя к запрашиваемой странице (странице, с которой пользователь был перенаправлен на страницу регистрации, хранящейся в параметре строки запроса ReturnURL), а если такой страницы нет, то к странице default.aspx. Первый передаваемый параметр – имя пользователя, а второй – логическое значение, указывающее, следует ли сохранить cookie аутентификации. Если второе значение равно true, cookie сохраняется на неопределенный срок, в противном случае срок действия cookie истекает через время, установленное в настроечном файле. Если метод FormsAuthentication.Authenticate() или собственный метод аутентификации возвращают false, дайте пользователю знать, что он должен войти заново.

Else lblResults.Text = "Invalid Username and Password" End If

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

  • Когда пользователи пытаются получить доступ к защищенной части приложения, они перенаправляются на страницу logon.aspx.
  • Пользователь входит на страницу logon.aspx и создается cookie аутентификации.
  • В зависимости от того, установлен ли флажок cbPersist или нет, этот cookie либо сохраняется, либо его время действия истекает через заданное количество минут.
  • Пользователь возвращается на страницу, к которой он первоначально пытался получить доступ.




Содержание  Назад  Вперед