我正在开发一个新的Intranet MVC应用程序,该应用程序具有基于Windows的身份验证,并且我正在尝试使用现有的内部公司授权库,该库具有user ID
和group
两个输入参数,并检查是否用户属于该组并返回bool值。
我希望在使用Windows AD成功验证用户后立即检查授权规则,并允许授权用户完全访问整个站点。如果他们未获得授权,请将他们带到自定义错误页面并将其锁定在页面的所有视图之外。我已经阅读了基于MVC角色的身份验证,但无法弄清楚如何使用自定义授权库实现它。
我现在这样做的方法就是在每个控制器中放置try catch块来授权用户,但这并不是很干,看起来也不安全。实现我的结果的正确MVC方式是什么?
感谢。
答案 0 :(得分:1)
我的偏好是使用asp.net-identity进行身份验证和授权。默认情况下,身份使用它自己的表和角色,但是您可以轻松地覆盖使用表的方法来使用您想要的任何内容。
使用Windows AD成功验证用户后
只需导出您自己的SignInManager版本并覆盖PasswordSignInAsync。有很多other ways(and more)来修改Identity框架以通过AD进行身份验证。
我希望在用户成功通过身份验证后立即检查授权规则
只需在方法或控制器上使用AuthorizeAttribute即可确保所有请求都有效。
现有的内部公司授权库,它接受用户ID和组的两个输入参数,并检查用户是否属于该组并返回bool值。
您还可以派生自己的UserManager和RoleManager to check if a user is in a role。