我尝试使用 ASP.NET Active Directory Membership Provider 对 ASP.NET Web API 中的用户进行身份验证。此活动目录位于另一台服务器上,我只能通过 VPN 连接到该服务器。以下是我正在使用的代码:
网络配置:
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://vpn.servername.com/dc=vpn,dc=servername,dc=com"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionProtection="Secure"
attributeMapUsername="sAMAccountName"
enableSearchMethods="false" />
</providers>
</membership>
C#:
System.Web.Security.Membership.ValidateUser(username, password);
它抛出一个异常,它无法与服务器建立安全连接,最里面的异常消息是服务器无法运行。我还使用 Cisco AnyConnect 连接到此 VPN,并且工作正常。
有什么我想念的吗?