【发布时间】: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"
我现在可以使用正确的凭据登录,并且我还会因尝试错误的登录尝试而提示错误的凭据。
当另一个用户的凭据与我在connectionUsername 和connectionPassword 中“硬编码”的用户不同时,该用户仍然可以登录。
但是,工具箱中的 LoginName 工具仍然在 connectionUsername 中显示“硬编码”凭据的用户名,而不是登录用户的用户名。
我可以知道为什么会这样吗?
【问题讨论】:
-
您是否已将站点/应用程序/虚拟目录/页面上的身份验证设置更改为“Windows 身份验证”(假设您使用 IIS 进行托管)?
-
@M.Babcock 我可以知道如何转到站点/应用程序/虚拟目录/页面吗?是控制面板还是?
-
它将在您的 IIS 管理器中。
-
@M.Babcock 我需要外部工具吗?
-
@M.Babcock 到目前为止,我还没有配置任何 ISS 管理器。我可以知道如何打开该工具吗?
标签: c# asp.net authentication active-directory asp.net-membership