0

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

但是,由于有超过 20 个 Windows 帐户访问一个站点,我不想在每个 Authorize 语句中硬编码 20 个用户。更重要的是,一些用户需要拥有与其他用户不同的访问权限。我想拥有一个 CustomAuthorizationAttribute 迭代的用户列表,以查看所需的用户是否在其中。

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

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

4

2 回答 2

0

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

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

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

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

警告:您还必须建立一个 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 环境中做了类似的事情。

于 2012-07-03T20:47:01.093 回答
0

我读过的关于基于角色的授权的最好的文章之一是: Darren NeimkeScott Mitchell的基于角色的表单身份验证第 2 部分)。他们为 ASP.NET 2.0 编写了它,并且在 4.0 版(以及据我所知的 4.5 版)中没有改变任何概念。

要成为该领域的大师,请阅读此 MSDN 及其所有章节:

构建安全的 ASP.NET 应用程序:身份验证、授权和安全通信

于 2012-07-04T00:50:09.677 回答