Windows身份验证 - 验证众多用户

时间:2012-07-03 20:35:29

标签: asp.net-mvc-3

我在网站上使用Windows身份验证,但希望具有访问级别。目前,我正在使用[Authorize(Users =“userA”)]语法。

但是,如果有超过20个Windows帐户访问某个站点,我不希望必须使用每个Authorize语句对20个用户进行硬编码。而且,一些用户需要拥有与其他用户不同的访问权限。我想到了一个CustomAuthorizationAttribute遍历的用户列表,以查看所需用户是否在其中。

基本上,我试图在不使用Forms身份验证的情况下获取角色。

最有效,最简单的方法是什么?

2 个答案:

答案 0 :(得分:0)

您的答案位于ActiveDirectory域中。由于您使用的是MVC 3,因此您应该可以访问以下命名空间“目录服务帐户管理”:

http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx

您可以看到这篇文章用于描述下面的整个过程,它提供了示例代码供您立即使用:

http://msdn.microsoft.com/en-us/magazine/cc135979.aspx

Forwarning: 您还必须建立LDAP连接字符串。 LDAP是用于从安全的Windows数据库中检索该信息的协议。

http://technet.microsoft.com/en-us/library/aa996205(v=exchg.65).aspx

要查看正在使用的代码:

http://www.willasrari.com/blog/query-active-directory-users-using-c/000133.aspx

我在使用IIS 7的.NET 3.5环境中做过类似的事情。

答案 1 :(得分:0)

我读过有关基于角色的授权的最佳文章之一是: Role-Based Authorization With Forms AuthenticationPart 2 Darren Neimke Scott Mitchell 。他们为ASP.NET 2.0编写了它,并且在4.0版本中没有改变任何概念(据我所知,4.5版本)。

要成为此领域的主人,请阅读此MSDN及其所有章节:

Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication