Как получить контроль входа в систему asp.net для автоматической аутентификации ранее прошедшего проверку пользователя?

Я пытаюсь настроить элемент управления входами, чтобы запомнить учетные данные пользователя, который ранее успешно ввел имя пользователя и пароль. Я установил для свойства Remember me значение true, но, похоже, триггер не имеет каких-либо событий, где я мог бы читать cookie и автоматически вводить пользователя в систему.

Есть ли простой механизм для достижения этого?

1 ответ

Вам нужно Google для Аутентификация форм в ASP.NET 2.0

Вам необходимо настроить приложение (через web.config), а также изменить параметры IIS. Хотя все довольно просто, есть множество настроек, которые можно использовать, поэтому лучше всего прочитать некоторые статьи. У ScottGu есть запись в блоге, которая содержит много хороших деталей.

Есть также много хорошего видео в www.asp.net, включая эти Учебные пособия по безопасности

попробуйте Как создать страницу входа в ASP.NET и Пошаговое руководство. Создание веб-сайта с членством и входом пользователя. Если я помню, вам все равно придется выполнять аутентификацию самостоятельно, если вы не используете поставщика членства в Sql Server. В этом случае вам все равно нужно настроить базу данных и web.config.

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

if (VerifyUser(name, password) ) // this is not a framework method
 FormsAuthentication.RedirectFromLoginPage(
 userName, false); // no persistent cookie

Если вы хотите прочитать данные билета аутентификации (из другого места).

// output just writes to a StringBuilder 'sb' 
output(sb, "Identity.AuthenticationType", Page.User.Identity.AuthenticationType);
FormsIdentity fi = Page.User.Identity as FormsIdentity;
if (fi == null)
{
 output(sb, "Identity Type", Page.User.Identity.ToString());
 return;
}
output(sb, "FormsIdentity.Ticket.IssueDate", fi.Ticket.IssueDate);
output(sb, "FormsIdentity.Ticket.Expiration", fi.Ticket.Expiration);
output(sb, "FormsIdentity.Ticket.Name", fi.Ticket.Name);
output(sb, "FormsIdentity.Ticket.CookiePath", fi.Ticket.CookiePath);
output(sb, "FormsIdentity.Ticket.UserData", fi.Ticket.UserData);
output(sb, "FormsIdentity.Ticket.Version", fi.Ticket.Version);
output(sb, "FormsIdentity.Ticket.IsPersistent", fi.Ticket.IsPersistent);

Точка, после аутентификации, asp.net будет перенаправлять пользователя только на страницу входа в систему, если истек срок действия аутентификационного билета, и пользователь находится на защищенной странице. Asp.net не просит вас без проверки аутентифицировать пользователя.

licensed under cc by-sa 3.0 with attribution.