我正在使用 WebSecurity 进行身份验证,并使用自定义ClaimsAuthorizationManager
进行授权。
将基于声明的授权与用于身份验证的内置 WebSecurity 功能相结合,为我提供了很多价值。对于需要从多个系统组合的复杂授权逻辑的任何人,我强烈推荐它。
无论如何,除了 RememberMe 功能之外,一切都运行良好。
当用户登录时,我设置我的身份验证 cookie(通过 WebSecurity),新建 myClaimsPrincipal
并将其写入我的SessionSecurityToken
. 巴姆,它工作得很好。
但是,当用户之前选择保留 (Websecurity) auth cookie 时,她可以绕过我的登录方法,该方法会通知 myClaimsPrincipal
并将我的主体写入 my SessionSecurityToken
. 我的授权失败是因为我的声明尚未加载,因为我没有机会转换我的ClaimsPrincipal
.
有没有办法挂钩(Websecurity)“表单身份验证cookie读取”事件?如果是这样,我可以处理它,更新我的ClaimsPrincipal
,并在我的路上。提前致谢!