ASP.Net Windows身份验证 - 用户身份登录到服务器

时间:2011-07-18 20:21:43

标签: asp.net iis windows-authentication

我有一个使用Windows身份验证的ASP.Net应用程序,并且我已经在我的AD和我的本地开发盒上指定了一个角色,所有这些似乎都很好。当我部署到我的测试Web服务器时,通过ASP LoginName控件显示的用户名显示的是服务器本地的标识,而不是我当前在本地PC上登录的域中的实际帐户。是什么给了什么?

更新 我使用Windows XP SP3与开发IIS服务器(不是IIS,即使安装了IIS)。我创建了一个新的测试站点(VWD2010 Express的空Web模板)。到目前为止,我所做的配置只在Default.aspx页面上,我补充说:

<asp:LoginName ID="LoginName1" runat="server" FormatString="Welcome {0}!" /><br />
<asp:Label ID="RoleLabel" runat="server"></asp:Label>

然后在后面的代码中,我补充道:

if (User.IsInRole("IPSCODOM\\SAFETY OBSERVATION"))
{
    this.RoleLabel.Text = "You are in the SAFETY OBSERVATION role";
}
else {
    this.RoleLabel.Text = "You are NOT in the proper role!";
}

现在,当我开始调试时,屏幕显示以下内容:

这是我期待的输出。但是,当我将站点(再次,没有其他配置到网站)部署到测试服务器(带有IIS 6.1的Server 2003 R2)时,结果完全不同。返回的用户是我们用于登录该服务器的用户(但是是域帐户)。应用程序池设置为使用网络服务帐户登录(我已经尝试了三种,系统,本地服务和网络服务),并且万维网发布服务使用本地系统帐户登录。我在网站上禁用了匿名访问,当我浏览到该网站时,它再次显示与我登录的用户帐户不同的用户帐户。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

什么是“本地服务器”身份。在不了解您的设置的情况下,我首先会检查您是否确实在服务器上设置了IIS实例以使用Windows身份验证,因为这不是默认设置。如果修复失败,请确保您没有将IIS中的服务热线连接以使用特定帐户。

答案 1 :(得分:0)

实际问题是,当我需要将一些文件部署到测试服务器并且我无法访问驱动器的根目录时。当我浏览到根目录时,出现了登录对话框,我以登录网页时显示的用户身份登录。我忘记了我这样做了,现在我觉得自己像个白痴。请原谅我的无知,但请记住这个问题,万一其他人有脑屁。

要顺便撤消登录,我转到控制面板&gt;&gt;用户帐户&gt;&gt;高级&gt;&gt;管理密码并删除我浏览的服务器的凭据。然后它正确地拿起我的用户帐户。