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

时间:2012-01-17 03:36:56

标签: c# asp.net authentication active-directory asp.net-membership

我正在使用VS2005 C#。

我正在尝试将我的登录身份验证从ASP.NET网站管理工具切换为使用 Internet 本地网络,这是Windows身份验证。

我已将网络表单中的登录工具的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中显示“硬编码”凭据的用户名,而不是登录用户的用户名。

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

1 个答案:

答案 0 :(得分:1)

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

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