ASP.NET网页和AD成员资格

时间:2013-08-08 17:28:09

标签: c# asp.net .net asp.net-membership membership-provider

是否可以使用asp.net的网页风格来验证具有Active Directory成员资格的用户?我在网上看到的大多数例子中都注意到,网页使用简单的会员提供商。

2 个答案:

答案 0 :(得分:2)

我过去曾成功使用此设置在.net网页上使用Active Directory进行身份验证:http://msdn.microsoft.com/en-us/library/ff650308.aspx

<强>更新

上一个链接适用于“Web Forms”/ framework 2.0。这似乎相当于“网页”:http://www.mikesdotnetting.com/Article/216/Windows-Authentication-With-ASP.NET-Web-Pages

我从来没有使用过Web页面描述的方法,但是通过查看代码并进行比较,它似乎做了同样的事情,即禁用默认的SimpleMembership身份验证并使用AD代替。希望这会有所帮助。

答案 1 :(得分:1)

如果您尝试使用带有Forms身份验证的asp.net应用程序使用自定义登录页面,则可以非常轻松地使用AD。在Web.config中的“表单身份验证”下,放置下面列出的成员资格提供程序。 然后在您的connectionStrings中,将AD Service连接放在下面,并附上您的信息。之后,由于您将拥有更多页面,因此您需要确保它们不能简单地导航到这些页面。通过使用拒绝用户访问该页面。然后,拥有Active Directory帐户的任何人都可以访问该站点。建议使用Roles拒绝用户访问网站的某些部分。您还可以将身份验证模式从“表单”更改为“Windows”,这将使用AD登录。我需要它更加安全,因为我公司的某些人不需要查看此网站。为此,我针对SQL数据库验证用户名。只要用户名与数据库中的用户名匹配,就可以登录。我希望这有帮助!

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
  <providers>
    <clear />
    <!--Membership provider for Active Directory-->
    <add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,  System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADService" attributeMapUsername="sAMAccountName"/>
  </providers>
</membership>


<connectionStrings>
    <add name="ADService" connectionString="LDAP://YOURDOMAINNAME/OU=YOURORGANIZATIONALGROUP,DC=YOURDOMAINCONTROLLER,DC=net" />
  </connectionStrings>


//This deny's all users who do not have an AD account. 
<location path="Default.aspx">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>