【发布时间】:2014-12-05 20:21:15
【问题描述】:
我正在使用带有 cookie 身份验证的 ASP.NET Identity 2。我想将用户的权限添加到当前的 ClaimsPrincipal 但是因为可能有很多权限并且 cookie 的大小有限,所以我不想将身份的所有声明序列化到 cookie 中。我想在登录期间加载声明并将它们缓存在服务器端。我必须在哪里挂钩才能在每个请求中将声明添加到当前委托人?
【问题讨论】:
我正在使用带有 cookie 身份验证的 ASP.NET Identity 2。我想将用户的权限添加到当前的 ClaimsPrincipal 但是因为可能有很多权限并且 cookie 的大小有限,所以我不想将身份的所有声明序列化到 cookie 中。我想在登录期间加载声明并将它们缓存在服务器端。我必须在哪里挂钩才能在每个请求中将声明添加到当前委托人?
【问题讨论】:
我找到了解决方案。 IAuthenticationSessionStore 接口正是我所需要的。通过实现该接口,在CookieAuthenticationOptions.SessionStore property 上设置它的实例,您可以决定如何在请求期间保留整个 ClaimsPrincipal 而无需将其序列化到 cookie 中。
Tarzan,对不起,Vittorio Bertocci 正在向界面here 展示详细信息。
【讨论】: