我正在尝试在asp.net Web应用程序中设置Windows身份验证。
在aspx页面中运行以下代码不会返回任何信息..
User.Identity.Name.ToString()
这是我到目前为止所做的事情: 服务器赢了2008年r2。在IIS中,我启用了Windows身份验证。 在Windows身份验证的高级设置中,扩展保护:关闭并启用内核模式身份验证。
在我的应用的web.config中,我有以下内容:
<authentication mode="Windows"/>
在system.web节点中。 在默认aspx的页面加载中,我有以下内容..
string userName=" ++ " + User.Identity.Name.ToString() + " ++ ";
ltrTest.Text = userName;
它返回的全部是“++ ++”。
答案 0 :(得分:1)
您需要做一些事情。在开发计算机中,在本地运行应用程序时,您需要禁用匿名身份验证并启用Windows身份验证。为此,您需要单击项目属性。在那里,您应该看到Development Server(我单击我的解决方案,然后单击属性选项卡)。然后,您将匿名身份验证更改为已禁用,然后将Windows身份验证更改为已启用。
然后您应该可以使用
string userName = User.Identity.Name;
ltrTest.Text = userName;
这应该这样做。希望这可以帮助。
编辑:我在新的应用程序中设置了Windows身份验证并发布到IIS并显示标签为用户名。
步骤:
1)
<authentication mode="Windows">
<forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/" />
</authentication>
<authorization>
<deny users = "?" />
</authorization>
这就是我设置webconfig的方法。如果你有
<identity impersonate="true"/>
你会想要删除它。
2)发布到IIS
3)在IIS中打开网站主页,然后点击身份验证。
4)禁用匿名身份验证并启用Windows身份验证。 注意:Windows身份验证是唯一可以启用的功能。如果启用了其他任何内容(Impersontaion),则禁用它。
5)在本地电脑上,导航到该网站,在登录提示中键入凭据
那就是它。使用我放在default.aspx页面中的标签,我能够以DOMAIN \ User格式查看我的用户名。我还显示了身份验证类型以及用户是否经过身份验证。
这应该可行,因为我刚刚测试过它。