AD身份验证未知的用户名或错误的密码
本文关键字:错误 密码 用户 身份验证 未知 AD | 更新日期: 2023-09-27 18:20:34
我使用的是VS2005 C#。
我正在尝试将我的登录身份验证从ASP.NET网站管理工具从使用Internet切换到本地网络,即Windows身份验证。
我已将web表单中登录工具的MembershipProvider设置为我的MP名称,MyADMembershipProvider。
以下是我在进行一些更改后的当前web.config文件:
<configuration>
<appSettings/>
<connectionStrings>
<add name="SODConnectionString" connectionString="CONNECTIONSTRING" providerName="System.Data.SqlClient"/>
<add name="ADConnectionString" connectionString="LDAP://URL"/>
</connectionStrings>
<system.web>
<authentication mode="Windows" />
<roleManager enabled="true" />
<pages styleSheetTheme="DataWebControls"/>
<membership defaultProvider="MyADMembershipProvider">
<providers>
<clear/>
<add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=PUBTOKEN" applicationName="SOD" connectionStringName="ADConnectionString" connectionUsername="domain'Username" connectionPassword="Password" attributeMapUsername="sAMAccountName" enableSearchMethods="true" />
</providers>
</membership>
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider"
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
<compilation debug="true"/>
<!-- Turn on Custom Errors -->
<customErrors defaultRedirect="~/Error/NetworkError.aspx" mode="On">
<error statusCode="404" redirect="~/Error/PageNotFound.aspx" />
</customErrors>
</system.web>
</configuration>`
当我尝试在intranet中使用计算机的Windows凭据登录时,我当前收到一条配置解析错误消息:登录失败:未知用户名或错误密码。
线上指出的错误
<add name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
applicationName="SOD"
connectionStringName="ADConnectionString"
connectionUsername="domain'Username"
connectionPassword="Password"
attributeMapUsername="sAMAccountName"
enableSearchMethods="true" />
有一个错误。
我可以知道我的代码哪一部分出错了吗?
编辑:
我已经填写了代码的实际凭证
connectionUsername="domain'Username" connectionPassword="Password"
我现在可以使用正确的凭据登录,并且错误的登录尝试也会提示我使用错误的凭据。
当另一个用户的凭证与我在connectionUsername
和connectionPassword
中"硬编码"的凭证不同时,该用户仍然可以登录。
但是,工具箱中的LoginName工具仍然显示connectionUsername
中"硬编码"凭据的用户名,而不是登录用户的用户名。
我可以知道为什么会这样吗?
我认为错误在于成员资格提供程序,而不是登录。
在我看来,成员资格提供程序中的connectionUsername和connectionPassword属性没有指定有效的AD帐户。我相信此帐户用于在登录过程中验证凭据,并在登录后检索有关帐户的信息。