通过web.config实现ASP.NET Active Directory角色提供程序

时间:2011-11-04 14:09:42

标签: asp.net active-directory web-config

我想问一下是否有人可以为以下情况提供web.config示例:

我有一个带有表单身份验证(登录控件)的Web(ASP.NET),我希望将其连接到我们的企业Active Directory。在AD中,我们已经定义了用户和组。用户的身份验证(允许用户......)就像魅力一样,但是,当我想添加角色身份验证(允许角色......)时它不起作用。我曾尝试启用角色管理器,但不知道如何设置提供程序以与AD通信。

此外,我想只在web.config中进行所有设置,而不是在代码中进行组验证(我知道这是可能的,但我更喜欢配置解​​决方案)。

虽然我在网上经历了几个教程,但大部分角色认证都是针对使用本地sql server或Windows授权,而不是AD。

2 个答案:

答案 0 :(得分:10)

如果该网站位于 Intranet 上,则您 不使用登录控件或角色提供程序。 AD已经是一个开箱即用的提供商。您的web.config文件需要

<authentication mode="Windows"/>
<authorization>
  <!--<allow roles="AD_GROUP" />-->
  <!--<allow users="USERS"/-->
  <deny users="?"/> <!-- Important if you want to force authentication-->
</authorization>

在您的代码中的某个位置,您可以检查用户是否具有以下角色:

HttpContext.Current.User.IsInRole("AD_GROUP_NAME")

答案 1 :(得分:8)

我们的想法是编写一个自定义角色提供程序,它从AD中读取组并以用户角色公开:

http://slalomdev.blogspot.com/2008/08/active-directory-role-provider.html