Использование удостоверения asp.net версии 1.0.0-rc1 с Entity Framework 6.0.0-rc1 (те, которые поставляются с Visual Studio 2013 RC).
Попытка дать пользователям возможность изменить свои UserName
. Кажется, для этого нет функции под AuthenticationIdentityManager
, поэтому я меняю данные с помощью EF (получаю объект пользователя для текущего пользователя, меняю имя пользователя и сохраняю изменения).
Проблема в том, что куки аутентификации остаются неизменными, и следующий запрос не проходит, так как такого пользователя нет.
В прошлом при проверке подлинности с помощью форм я использовал следующий код для решения этой проблемы.
var formsAuthCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
var isPersistent = FormsAuthentication.Decrypt(formsAuthCookie.Value).IsPersistent;
FormsAuthentication.SetAuthCookie(newUserName, isPersistent);
Что мне делать с идентификатором asp.net, чтобы обновить файлы cookie?
ОБНОВЛЕНИЕ
Следующий код, кажется, обновляет файл cookie аутентификации.
var identity = new ClaimsIdentity(User.Identity);
identity.RemoveClaim(identity.FindFirst(identity.NameClaimType));
identity.AddClaim(new Claim(identity.NameClaimType, newUserName));
AuthenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant
(new ClaimsPrincipal(identity), new AuthenticationProperties {IsPersistent = false});
Остается проблема: как извлечь значение IsPersistent
из текущего файла cookie аутентификации?