我正在使用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"
我现在能够使用正确的凭据登录,并且还因错误的登录尝试而提示错误的凭据。
当connectionUsername
和connectionPassword
中的另一个用户与我“硬编码”的用户不同时,该用户仍可以登录。
但是,工具箱中的 LoginName 工具仍会在connectionUsername
中显示“硬编码”凭据的用户名,而不是登录用户的用户名。
我可以知道为什么会这样吗?
答案 0 :(得分:1)
我认为错误在于成员资格提供程序,而不是具体登录。
在我看来,成员资格提供程序中的connectionUsername和connectionPassword属性未指定有效的AD帐户。我相信此帐户用于在登录过程中验证凭据,并在帐户登录后检索有关该帐户的信息。