// Перенаправить на исходную запрошенную страницу
    Response.Redirect(FormsAuthentication.GetRedirectUrl(UsernameText.Text, true));
  }
  else
  {
    // Имя и пароль пользователя неправильны
    LegendStatus.Text = "Неверное имя пользователя или пароль!";
  }
}

Код проверки удостоверения в этом сценарии прежний. Единственное отличие состоит в том, что cookie-набор аутентификации не добавляется автоматически. Вместо этого он создается вызовом GetAuthCookie(), который возвращает новый экземпляр HttpCookie, как показано ниже:

HttpCookie AuthCookie;
AuthCookie = FormsAuthentication.GetAuthCookie(UsernameText.Text, true);

После того, как cookie-набор аутентификации создан, можно получить текущее время и дату (используя статическое свойство DateTime.Now), добавить к нему 10 дней (методом DateTime.AddDaуs()) и использовать полученное значение в качестве даты устаревания данного cookie-набора:

AuthCookie.Expires = DateTime.Now.AddDays(10);

Далее потребуется добавить cookie-набор в HTTP-ответ:

Response.Cookies.Add(AuthCookie);

И, наконец, вы можете перенаправить пользователя на исходный залрошенный URL, который можно получить методом GetRedirectUrl():

Response.Redirect(FormsAuthentication.GetRedirectUrl(UsernameText.Text, true));

В результате получаем cookie-набор, который сохраняется при закрытии браузера, но время действия которого истекает через 10 дней, когда пользователю придется ввести заново свое удостоверение, чтобы снова зарегистрироваться на Web-сайте.

Резюме

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

 

 

предыдущая    следующая страница    вначало главы    оглавление

848

Hosted by uCoz