【发布时间】:2013-08-26 18:46:20
【问题描述】:
我使用 WebSecurity 进行身份验证,使用自定义 ClaimsAuthorizationManager 进行授权。
将基于声明的授权与用于身份验证的内置 WebSecurity 功能相结合,为我提供了很多价值。对于需要从多个系统组合复杂的授权逻辑的人,我强烈推荐它。
无论如何,除了 RememberMe 功能之外,一切都运行良好。
当用户登录时,我设置我的身份验证 cookie(通过 WebSecurity),新建我的 ClaimsPrincipal,并将其写入我的 SessionSecurityToken。 Bam,它工作得很好。
但是,当用户先前选择保留 (Websecurity) 身份验证 cookie 时,她可以绕过我的登录方法,该方法会更新我的 ClaimsPrincipal 并将我的主体写入我的 SessionSecurityToken。我的授权失败,因为我的声明尚未加载,因为我没有机会转换我的 ClaimsPrincipal。
有没有办法挂钩(网络安全)“表单身份验证 cookie 读取”事件?如果是这样,我可以处理它,更新我的 ClaimsPrincipal,然后继续。提前致谢!
【问题讨论】:
标签: asp.net-mvc-4 cookies forms-authentication claims-based-identity