2
Я пытаюсь реализовать функцию «запомнить меня» с помощью ASP.NET MVC. Он использует настраиваемый процесс аутентификации, как определено ниже.asp.net mvc authentication cookie issue
Web.config:
<authentication mode="Forms">
<forms loginUrl="/Account/Login" defaultUrl="/Home/MyAccount" timeout="43200"/>
</authentication>
Код упорствовать печенья:
public void SignIn(string userName, bool createPersistentCookie) {
int timeout = createPersistentCookie ? 525600 : 120; // Timeout in minutes, 525600 = 365 days.
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userName, createPersistentCookie, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
HttpContext.Current.Response.Cookies.Add(cookie);
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
}
код, чтобы получить печенье:
if (System.Web.HttpContext.Current.Request.Cookies.AllKeys.Contains(FormsAuthentication.FormsCookieName)) {
cookie = System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
}
Текущие проверки кода на сессии для проверки подлинности. Я хотел бы добавить возможность получить имя пользователя из файла cookie. У меня есть 2 вопроса:
- Что мне нужно сделать, чтобы извлечь файл cookie?
- Как дешифровать файл cookie для получения имени пользователя?
Cheers,
Дин
Спасибо, что прекрасно работает. Я также понял, что мне нужно удалить код FormsAuthentication.SetAuthCookie (имя_пользователя, createPersistentCookie); – Dean