Windows身份验证用户出现空白

时间:2014-03-12 17:16:43

标签: asp.net authentication iis

我正在尝试在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;

它返回的全部是“++ ++”。

1 个答案:

答案 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格式查看我的用户名。我还显示了身份验证类型以及用户是否经过身份验证。

这应该可行,因为我刚刚测试过它。