在调用SignIn
之后,是否可以在控制器中检索和修改声明?这对我不起作用:
ClaimsIdentity i = (ClaimsIdentity)HttpContext.GetOwinContext().Authentication.User.Identity;
i.AddClaim(new Claim("type", "value"));
我需要做的是:登录完成后,用户一直在做其他事情,他们发布了一个表单,我需要在这一点上修改索赔,并将它们重定向到另一个页面。我想知道这是不是因为PRG和cookies,或者仅仅是身份,或者我缺乏知识而不起作用?
更新:我实际上是通过第二次调用SignIn
来解决这个问题的,这似乎是有效的,但我猜这会有副作用,所以如果有一种方法可以不管怎样地修改它们,那就更好了。
发布于 2014-04-01 03:01:05
当您想要修改用户的声明时,调用SignIn正是您应该做的事情。它基本上导致ClaimsIdentity被序列化到cookie中,这就是为什么您会在后续请求中看到新声明的原因。
https://stackoverflow.com/questions/22768836
复制相似问题