Asp.net-Identity

呼叫 SignIn 後,我可以使用 OWIN 修改 ASP.NET Identity 中的聲明嗎?

  • March 31, 2014

是否可以在呼叫後在控制器中檢索和修改聲明SignIn?這對我不起作用:

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

我需要做的是:登錄完成並且使用者一直在做其他事情后,他們發布了一個表單,此時我需要修改聲明並將它們重定向到另一個頁面。我想知道這是否由於 PRG 和 cookie,或者僅僅是身份,或者我缺乏知識而不起作用?

更新:我實際上通過SignIn第二次呼叫來解決這個問題,這似乎有效,但我猜這有副作用,所以很高興知道是否有辦法修改這些無論如何。

當您想為使用者修改聲明時,呼叫 SignIn 正是您應該做的。它基本上會導致 ClaimsIdentity 被序列化到 cookie 中,這就是為什麼您會看到新的聲明出現在後續請求中的原因。

引用自:https://stackoverflow.com/questions/22768836