asp.net-identity - 调用 SignIn 后是否可以使用 OWIN 修改 ASP.NET Identity 中的声明?

标签 asp.net-identity claims-based-identity owin

调用 SignIn 后是否可以检索和修改 Controller 中的声明?这对我不起作用:

ClaimsIdentity i = (ClaimsIdentity)HttpContext.GetOwinContext().Authentication.User.Identity;
i.AddClaim(new Claim("type", "value"));

我需要做的是:登录完成并且用户一直在做其他事情后,他们发布一个表单,我需要此时修改声明并将它们重定向到另一个页面。我想知道这是否由于 PRG 和 cookie 不起作用,或者只是由于身份,或者我缺乏知识?

更新:我实际上通过再次调用 SignIn 来解决这个问题,这似乎有效,但我猜这会产生副作用,所以很高兴知道是否有办法无论如何修改这些。

最佳答案

当您想要修改用户的声明时,调用 SignIn 正是您应该做的事情。它基本上会导致 ClaimsIdentity 被序列化到 cookie 中,这就是为什么您会看到新的声明出现在后续请求中。

关于asp.net-identity - 调用 SignIn 后是否可以使用 OWIN 修改 ASP.NET Identity 中的声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22768836/

相关文章:

c# - 如何根据多个条件使用 Linq 查找特定项目?

asp.net-mvc-5 - Okta OWIN 提供程序与 ASP.NET MVC 5 一起使用

c# - 如何将 Owin 上下文传递给被注入(inject) Api Controller 的 Repo

asp.net-web-api - 如何使用 Web API 模板中的 AddExternalLogin 方法

c# - 如何使用 ASP.NET Identity 创建用户并获取新创建的 ID

asp.net-core - Asp.net Core Identity 使用 AspNetUserClaims 还是 AspNetRoleClaims?

c# - 在 MVC5 应用程序中扩展声明身份

c# - 从 ClaimsIdentity 检索 WindowsIdentity 的最佳方法是什么

c# - WebAPI [FromBody] 始终为空

c# - AspNet Core Identity,如何设置options.Cookie.SameSite?