繁体   English   中英

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

[英]ASP.Net Windows Authentication - User Identity Logged Into Server

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

更新:我正在使用 Windows XP SP3 和开发 IIS 服务器(不是 IIS,即使 Z5DA5ACF46104EFB7E7Z6EC8 已安装)。 我创建了一个新的测试站点(来自 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!";
}

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

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

我究竟做错了什么?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM