我有一个使用Windows身份验证的ASP.Net应用程序,我指定了一个位于我的AD和我的本地开发框中的角色,看起来都很好。当我部署到我的测试Web服务器时,通过ASP LoginName控件显示的用户名显示的是服务器本地的身份,而不是我当前登录的域中的实际帐户,与我的本地PC一样。是什么赋予了?ASP.Net Windows身份验证 - 用户身份登录到服务器
UPDATE: 我使用Windows XP SP3与发展IIS服务器(IIS没有,即使已安装IIS)。我创建了一个新的测试网站(来自VWD2010 Express的空网页模板)。只有我做了配置,到目前为止是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)部署到站点(再次没有其他配置)时,结果会非常不同。用户返回的是我们用来登录到该服务器的用户(但是是一个域帐户)。应用程序池设置为使用网络服务帐户(我已尝试全部三种,系统,本地服务和网络服务)登录,万维网发布服务正在使用本地系统帐户登录。我禁用了网站上的匿名访问,当我浏览到网站时,它又显示与我登录的用户帐户不同的用户帐户。
我在做什么错?
如果这出现在浏览器上,或许浏览器自动完成选项认为您正在浏览该服务器上的另一个Web应用程序? –
naah,看看我下面的评论,现在我试图在本地机器上使用IIS 7.5 Express,并且User对象没有配置文件。不知道我在这里做错了什么......认为这很简单。 – Keith
好的,所以我在当前的设置中添加了更多细节。检查上面的更新... – Keith