Как получить элемент управления входом asp.net для автоматической аутентификации ранее аутентифицированного пользователя?
-
03-07-2019 - |
Вопрос
Я пытаюсь настроить элемент управления входом в систему, чтобы запомнить учетные данные пользователя, который ранее успешно ввел свои имя пользователя и пароль. Я установил свойство Запомнить меня в true, но, похоже, оно не вызывает события, когда я мог прочитать cookie и автоматически войти в систему пользователя. Р>
Есть ли простой механизм для достижения этой цели?
Решение
Вам нужно Google для проверки подлинности с помощью форм в ASP.NET 2.0
Вам потребуется настроить приложение (через web.config), а также может потребоваться изменить настройки IIS. Хотя все это довольно просто, есть куча настроек, которые можно использовать, поэтому лучше всего прочитать некоторые статьи. ScottGu имеет запись в блоге , в которой много деталей.
На www.asp.net есть также много хороших видео, в том числе Руководства по безопасности
попробуйте Как создать страницу входа в ASP.NET и Пошаговое руководство. Создание веб-сайта с членством и входом пользователя . Насколько я помню, вам все равно придется выполнять аутентификацию самостоятельно, если только вы не используете поставщика Sql Server Membership. В этом случае вам все еще нужно настроить базу данных и web.config.
<Ч>По сути, после правильной настройки конфигурации у вас появляется страница входа. На этой странице входа вы сообщаете Forms Authentication, чтобы создать для вас билет аутентификации, когда вы аутентифицируете их:
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 не просит вас аутентифицировать пользователя без необходимости.