更新ASP.NET One Core中的Claims值

马丁

我在MVC 6(Asp.Net One Core)中有一个Web应用程序,并且正在使用基于Claims的身份验证。在登录方法中,我设置了Claims:

var claims = new Claim[]
{
    new Claim("Name", content.Name),
    new Claim("Email", content.Email),
    new Claim("RoleId", content.RoleId.ToString()),
};

var ci = new ClaimsIdentity(claims, "password");
await HttpContext.Authentication.SignInAsync("Cookies", new ClaimsPrincipal(ci));

现在,例如,如果用户更改了用户配置文件中的电子邮件,如何更改“电子邮件”声明的电子邮件值?我必须再次SignOutAsync和SignInAsync才能更新cookie?最好的解决方案是将其保存到经典会话中?有更好的解决方案吗?我完全错了吗?

有什么建议么?

赢得

我必须再次SignOutAsync和SignInAsync才能更新cookie?

答案是肯定的。

最简单的方法是,您可以在更新电子邮件的相同操作方法内手动注销和登录(再次创建声明)

最好的解决方案是将其保存到经典会话中?

我建议不要这样做。在ASP.Net MVC中,显式使用会话状态是一种不良做法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章