我想在 mvc 4 应用程序中实现一个简单的 AD 身份验证。这是我在 web.config 文件中所做的更改:
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://test.com:636/DC=test,DC=com"/>
</connectionStrings>
...
<membership defaultProvider="ADMembershipProvider">
<providers>
<clear/>
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName"/>
</providers>
这是我的服务类中使用 AD 身份验证的方法:
public bool Authentificate(string userName, string password)
{
var membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");
string defaultProvider = membershipSection.DefaultProvider;
MembershipProvider provider = Membership.Providers[defaultProvider];
return provider != null && provider.ValidateUser(userName, password);
}
但是当我调试我的应用程序时,我看到“defaultProvider”是“AspNetSqlMembershipProvider”而不是“ActiveDirectoryMembershipProvider”,并且身份验证失败并显示消息:
无法连接到 SQL Server 数据库。在 System.Web.Management.SqlServices.GetSqlConnection(字符串服务器,字符串用户,字符串密码,布尔值信任,字符串 connectionString)在 System.Web.Management.SqlServices.SetupApplicationServices(字符串服务器,字符串用户,字符串密码,布尔值信任,字符串连接字符串,字符串数据库,字符串 dbFileName,SqlFeatures 功能,布尔安装)在 System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(字符串 fullFileName,字符串 dataDir,字符串 connectionString)
这里有什么问题?