使用自定义授权库进行授权

时间:2017-11-08 17:08:27

标签: c# asp.net-mvc asp.net-mvc-4

我正在开发一个新的Intranet MVC应用程序,该应用程序具有基于Windows的身份验证,并且我正在尝试使用现有的内部公司授权库,该库具有user IDgroup两个输入参数,并检查是否用户属于该组并返回bool值。

我希望在使用Windows AD成功验证用户后立即检查授权规则,并允许授权用户完全访问整个站点。如果他们未获得授权,请将他们带到自定义错误页面并将其锁定在页面的所有视图之外。我已经阅读了基于MVC角色的身份验证,但无法弄清楚如何使用自定义授权库实现它。

我现在这样做的方法就是在每个控制器中放置try catch块来授权用户,但这并不是很干,看起来也不安全。实现我的结果的正确MVC方式是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

我的偏好是使用进行身份验证和授权。默认情况下,身份使用它自己的表和角色,但是您可以轻松地覆盖使用表的方法来使用您想要的任何内容。

  

使用Windows AD成功验证用户后

只需导出您自己的SignInManager版本并覆盖PasswordSignInAsync。有很多other waysand more)来修改Identity框架以通过AD进行身份验证。

  

我希望在用户成功通过身份验证后立即检查授权规则

只需在方法或控制器上使用AuthorizeAttribute即可确保所有请求都有效。

  

现有的内部公司授权库,它接受用户ID和组的两个输入参数,并检查用户是否属于该组并返回bool值。

您还可以派生自己的UserManager和RoleManager to check if a user is in a role