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

StackOverflow https://stackoverflow.com/questions/165331

Вопрос

Я пытаюсь настроить элемент управления входом в систему, чтобы запомнить учетные данные пользователя, который ранее успешно ввел свои имя пользователя и пароль. Я установил свойство Запомнить меня в 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 не просит вас аутентифицировать пользователя без необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top