4
我正在使用帶有cookie身份驗證的ASP.NET Identity 2。我想將用戶的權限添加到當前的ClaimsPrincipal,但由於可能有很多權限,並且cookie的大小有限,我不想將所有身份聲明序列化到cookie中。我想在登錄時加載聲明並將其緩存在服務器端。我必須在每個請求中將哪些要求添加到當前委託人?如何向ClaimsIdentity添加一些聲明,但不要將它們序列化到cookie中
我正在使用帶有cookie身份驗證的ASP.NET Identity 2。我想將用戶的權限添加到當前的ClaimsPrincipal,但由於可能有很多權限,並且cookie的大小有限,我不想將所有身份聲明序列化到cookie中。我想在登錄時加載聲明並將其緩存在服務器端。我必須在每個請求中將哪些要求添加到當前委託人?如何向ClaimsIdentity添加一些聲明,但不要將它們序列化到cookie中
我找到了解決方案。界面IAuthenticationSessionStore正是我所需要的。通過該接口的實現,在CookieAuthenticationOptions.SessionStore property上設置它的一個實例,您可以決定如何在請求期間保留整個ClaimsPrincipal而不將其序列化到cookie中。
Tarzan,特赦,Vittorio Bertocci將介紹細節到界面here。
也看到這個答案:http://stackoverflow.com/q/19192428/809357。可以相關。 – trailmax 2014-12-05 21:38:46
非常感謝@trailmax。作爲IAuthenticationSessionStore需要序列化AuthenticationTicket是沒有趣味的!在OWIN中間件從cookie中反序列化身份之後添加聲明要容易得多。 – 2014-12-06 04:58:06