Имейте в виду, что методы FormsAuthentication — статические, поэтому нет нужды создавать экземпляр класса FormsAuthentication для их вызова — вы просто обращаетесь к ним через имя класса.
if (FormAuthentication.Authenticate(UsernameText.Text, PasswordText.Text))
Если обнаружено соответствие для указанного удостоверения, вы можете вызвать метод RedirectFromLoginPage(), как показано ниже:
FormsAuthentication.RedirectFromLoginPage(UsernameText.Text, false);
Этот метод решает сразу несколько задач:
Второй параметр RedirectFromLoginPage() указывает на необходимость создания постоянных cookie-наборов. Постоянные cookie-наборы сохраняются на жестком диске пользователя и могут быть повторно использованы при последующих визитах. Постоянные cookie-наборы описаны в разделе "Постоянные cookie- наборы в аутентификации форм" далее в настоящей главе.
И, наконец, если Аuthenticate() возвращает false, на странице отображается сообщение об ошибке. Такой отклик всегда полезен, однако следует убедиться, что он не ослабляет защиту. Например, очень часто разработчики создают страницы регистрации, которые выдают разные сообщения об ошибках в зависимости от того, ввел ли пользователь неправильное имя или правильное имя при неправильном пароле. Обычно это плохая идея. Если злоумышленник пытается угадать имя пользователя и пароль, не стоит подсказывать ему, когда он находится на правильном пути.
Выход пользователя из аутентификации формы сводится к простому вызову метода FormsAuthentication.SignOut(). Вы можете создать кнопку выхода и добавить к ней следующий вод:
protected void SignOutAction_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
При вызове метода SignOut() вы удаляете cookie-набор аутентификации. В зависимости от приложения, вы можете пожелать переадресовать пользователя на другую страницу, когда он выходит из приложения. Если пользователь потом запросит другую страницу с ограниченным доступом, этот запрос будет снова переадресован на страницу регистрации. Вы можете переадресовать его туда немедленно после вызова метода SignOut(). Или же можно воспользоваться методом Response.Redirect.
предыдущая следующая страница вначало главы оглавление
843