【问题标题】:AD Authentication Unknown username or bad passwordAD Authentication 未知用户名或错误密码
【发布时间】:2012-01-17 03:36:56
【问题描述】:

我正在使用 VS2005 C#。

我正在尝试将我的登录身份验证从 ASP.NET 网站管理工具从使用 Internet 切换到 Local Network,这是 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 中显示“硬编码”凭据的用户名,而不是登录用户的用户名。

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

【问题讨论】:

  • 您是否已将站点/应用程序/虚拟目录/页面上的身份验证设置更改为“Windows 身份验证”(假设您使用 IIS 进行托管)?
  • @M.Babcock 我可以知道如何转到站点/应用程序/虚拟目录/页面吗?是控制面板还是?
  • 它将在您的 IIS 管理器中。
  • @M.Babcock 我需要外部工具吗?
  • @M.Babcock 到目前为止,我还没有配置任何 ISS 管理器。我可以知道如何打开该工具吗?

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


【解决方案1】:

我认为错误出在会员资格提供程序上,而不是专门与登录有关。

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

【讨论】:

  • 我在connectionUsernameconnectionPassword指定了一个AD账号。但是登录后,loginName 工具只显示 AD 帐户的用户名,而不是登录用户的用户名。我可以知道为什么会这样吗?
  • 您是否尝试使用您指定的帐户登录机器?我仍然怀疑该帐户有问题 - 密码错误、帐户被暂停、安全权限不足等。@RUiHAO,loginName 工具是什么?
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
相关资源
最近更新 更多