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"

我现在可以使用正确的凭据登录,并且错误的登录尝试也会提示我使用错误的凭据。

当另一个用户的凭证与我在connectionUsernameconnectionPassword中"硬编码"的凭证不同时,该用户仍然可以登录。

但是,工具箱中的LoginName工具仍然显示connectionUsername中"硬编码"凭据的用户名,而不是登录用户的用户名。

我可以知道为什么会这样吗?

AD身份验证未知的用户名或错误的密码

我认为错误在于成员资格提供程序,而不是登录。

在我看来,成员资格提供程序中的connectionUsername和connectionPassword属性没有指定有效的AD帐户。我相信此帐户用于在登录过程中验证凭据,并在登录后检索有关帐户的信息。