【问题标题】:Active Directory + HTTP Authentication活动目录 + HTTP 身份验证
【发布时间】:2011-04-27 20:50:05
【问题描述】:
好的,我正在开发一个 asp.net 网络应用程序,用于在内部跟踪我们的员工在校园里外出的地方以及他们在做什么。
我们目前为此使用的系统使用“NoSQL”表(无论如何都不是 100% 熟悉..),但它是使用 cgi 脚本的旧系统。因此,我在 asp.net 中对其进行了重写,以通过现代设计将系统更新为更现代,并为其添加活动目录身份验证,因为它使用自己的用户数据库,与我们在其他地方使用的 AD 分开。
我通过web.config 找到enable Active Directory Authentication 的一篇文章,但是,我宁愿不使用表单身份验证,而是将其绑定到HTTP 提示中进行身份验证。我已经尝试了一些谷歌搜索来尝试找到解决方案,但我似乎无法找到以前这样做过的任何人。
提前致谢。
【问题讨论】:
标签:
c#
asp.net
active-directory
http-authentication
【解决方案1】:
首先,如果您要使用域凭据对人员进行身份验证,则应确保使用 HTTPS,否则他们的密码将很容易使用网络嗅探器获取。
好的,所以你说的是 ASP.NET 中的 Windows 身份验证模式和 IIS 基本身份验证。您需要在 web.config 中配置以下内容:
<configuration>
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://your.ad.fqdn.com/DC=com,DC=fqdn,DC=ad,DC=your"/>
</connectionStrings>
<system.web>
<membership defaultProvider="ADMembershipProvider">
<providers>
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" connectionUsername="MYNTDOMAIN\someuser" connectionPassword="asdf1234"/>
</providers>
</membership>
<authentication mode="Windows"/>
</system.web>
</configuration>
接下来,您将要为基本身份验证配置 IIS。假设您正在运行 IIS 7.x,在 IIS 管理器中找到应用程序的根文件夹,然后单击身份验证。您应该能够在此处启用基本身份验证。您还可以启用 Windows 身份验证以允许 IE/Chrome 用户自动登录:
【解决方案2】:
Windows 身份验证通常是透明的(它们会自动使用登录 Windows 时使用的凭据进行身份验证)。如果您希望他们被强制输入凭据,您的页面需要返回 401 HTTP 状态代码。