ASP.NET Windows身份验证+服务器始终获取匿名用户

时间:2014-09-30 18:00:51

标签: c# asp.net authentication active-directory

这是我的情景:

我有一个内部网应用程序。我想让网络用户使用Windows身份验证功能自动登录应用程序。如果用户没有进入我的网络,我会弹出一个登录屏幕。

因此,我将身份验证模式更改为web.config文件为Windows。然后我使用HttpContext.User.Identity对象以使已登录的用户进入网络。所以我将应用程序运行到我的localhost中,效果很好。

当我将应用程序发布到服务器时,当我尝试自动登录时,Identity对象始终为空。

所以,我尝试了以下步骤:

  1. 拒绝匿名用户。 <deny users="?"/>,它不允许任何匿名用户进入应用程序,但我在这里遇到了一个问题:当用户没有进入我们的网络时,服务器从Window Servers弹出那个默认的身份验证窗口,而不是我的个人登录界面。

  2. 让匿名用户进入。如果我摆脱了<deny users="?"/>,任何用户都可以访问该页面,但始终会进入登录界面,即使我是进入我的本地网络。

  3. 所以,我需要的是:当用户进入本地网络时,直接登录而不登录。如果不是,请弹出登录屏幕。

    有人可以帮我弄清楚发生了什么吗?

    谢谢大家!

1 个答案:

答案 0 :(得分:0)

执行以下操作,

<identity impersonate="true" />
<authentication mode="None" />
<authorization>
  <deny users="?" />
</authorization>

希望它有所帮助。