将 Windows 身份验证与声明混合使用

本文关键字:混合 声明 Windows 身份验证 | 更新日期: 2023-09-27 17:57:13

我觉得我可能走错了路,希望有人能够做一点路线纠正!

我正在创建一个使用 Windows 身份验证的 Web 应用程序。 但是,我希望将自定义声明/角色分配给特定的窗口用户,我计划将其存储在 SQL 数据库中。

我认为一种方法是在应用程序的 web.config 中启用 Windows 身份验证,但从 WIF 添加一个 AuthenticationManager,该管理器可以将自定义声明(直接来自数据库)添加到主体/标识。 然后,授权管理器将处理对特定控制器操作的授权。

我现在遇到的问题是我的身份验证和授权管理器没有被调用。 我不确定我错过了什么(它们在 web.config 中注册),但我怀疑可能是因为我使用的是 Windows 身份验证......? 此外,我的授权属性没有调用授权管理器,可能是因为我需要创建一个新属性。

这是一条可行的路线,还是我应该考虑创建自定义角色提供程序?

将 Windows 身份验证与声明混合使用

ClaimsAuthenticationManager 不会自动调用 - FAM 会调用它。

也就是说 - 您可以自己调用它,例如在 Post_AuthenticateRequest 中,然后使用 SAM 设置一个 cookie。这是完全可行的。