我有一个IIS服务器是一个独立的服务器不在域上。
因此,用户不必login到本地用户数据库,我可以拥有IIS服务器,对照域控制器validation用户,还是至less让用户的login名传递给IIS应用程序?
可以假设用户将信任该网站。
在试图找出如何利用ActiveEngine for BlogEngine.NET时遇到了类似的需求。 花了一些时间研究后,我可以使用基本身份validation.NET成员框架使用Active Directory用户帐户。
这在我的域成员web服务器上工作,但可以很容易地为非域成员服务器工作,假设您将用户名和密码添加到web.config的configuration部分。
从我的博客文章如何configuration:
将条目添加到指向您的域控制器的部分。
<add name="ADConnectionString" connectionString="LDAP://server.domain.com/DC=domain,DC=com" />
请注意,LDAP://语法的第一部分指定了域控制器(server.domain.com)的名称。 这里有几个选项。 您可以指定完全限定域名,如示例中所示; 你可以指定relativeDistinguishedNamek(例如server); 您可以指定域控制器的IP地址(例如192.168.1.10); 或者为了更多冗余,您可以指定域名(例如domain.com)。
使您的部分如下所示:
<membership defaultProvider="MyADMembershipProvider"> <providers> <add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" enableSearchMethods="true"/> </providers> </membership>
您会注意到我没有configuration用于连接到Active Directory的用户名和密码。 这是因为我正在域成员服务器上运行BlogEngine,并且IIS服务正在使用networking服务帐户的应用程序池下运行。 如果您必须使用显式凭据,则可以使用相应的信息将connectionUsername和connectionPassword添加到MyADMembershipProvider条目中。
如果可能的话,我build议使用LDAPS调用,而不是LDAP。 我也build议使用SSL,如果你要开始以纯文本传递你的域名密码。
虽然我同意encryption的LDAP,也encryptionconfiguration文件中的域密码以及….(垫下或植物盆后?)