【发布时间】:2014-03-24 12:10:14
【问题描述】:
我正在使用带有 Owin 和 Claims 身份验证的 ASP.NET MVC 5.1。
用户更改其电子邮件后,我需要更新用户声明,因此我在控制器中尝试:
ClaimsIdentity identity = (ClaimsIdentity)User.Identity;
Claim claim = identity.FindFirst(ClaimTypes.Email);
identity.RemoveClaim(claim);
identity.AddClaim(new Claim(ClaimTypes.Email, newEmail));
IOwinContext context = new OwinContext();
context.Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie);
context.Authentication.SignIn(identity);
声明已更改,但是当我刷新页面时,电子邮件声明又是原始的...
cookie 似乎没有更新。知道我做错了什么吗?
是否有可能从身份中获取“IsPersistent”的值,所以当我再次签名时,我将获得相同的值?
谢谢,
米格尔
【问题讨论】:
-
您找到解决方案了吗?我也有同样的问题。
-
我找到了对我有用的here 的答案。
标签: asp.net-mvc asp.net-identity