0

我在 MVC 应用程序和自定义逻辑中使用 WIF 和基于声明的安全性,在验证后使用适当的声明创建 ClaimsPrincipal。我将一些标准声明(例如角色和名称)分配给委托人,但也会在适用的情况下分配自定义声明。

例如,我使用 URI 在标准化角色和名称声明之后建模了我的自定义声明

新声明(“http://schemas.acme.com/2012/04/identity/claims/create”、“http://schemas.acme.com/2012/04/identity/resources/customer”)

一切都运作良好。我使用 SessionAuthenticationModule 将用户会话存储在 cookie 中,并在每次请求时对其进行补充。

我今天注意到,在有人使用相同的用户类型登录后,我的自定义声明没有从 cookie 中反序列化。标准声明(名称/角色)存在,但自定义声明不存在。

有没有其他人见过这个或知道为什么会这样?

4

1 回答 1

0

原来我正在添加通过引用消失的声明。我有一个预定义了静态声明的类,我会根据需要添加到 ClaimsPrincipal 中。我以这种方式添加的任何声明后来在该类型的另一个用户登录时被删除。我的解决方案是将静态属性更改为 KeyValuePairs 并为每个用户创建新声明。

于 2012-06-12T14:12:54.470 回答