我尝试使用ASP.NET Active Directory成员资格提供程序来验证ASP.NET Web API中的用户。此活动目录位于不同的服务器上,我只能通过VPN连接到该服务器。以下是我正在使用的代码:
的web.config:
<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并且工作正常。
我有什么遗失的吗?
答案 0 :(得分:0)
我偶尔会遇到类似的问题。我的经验是,它通常是连接字符串的名称解析问题。
The server is not operational
异常。如果是这样,您对vpn.servername.com的名称解析可能无法解析为您的Active Directory服务器;