2014-09-30 54 views
0

这是我的场景:ASP.NET Windows身份验证+服务器总是获取匿名用户

我有一个Intranet应用程序。我想让网络用户使用Windows身份验证功能自动登录到应用程序。如果用户不在我的网络中,我会弹出一个登录屏幕。

因此,我将身份验证模式更改为web.config文件至Windows。然后,我使用HttpContext.User.Identity对象来获取登录的用户进入网络。所以我运行该应用程序到我的本地主机,它的效果很好。

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

所以,我尝试以下步骤:

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

  2. 让匿名用户。如果我与<deny users="?"/>摆脱,任何用户都可以访问该页面,但它总是的登录屏幕,即使我到我的本地网络。

所以,我需要的是:当用户进入本地网络时,不用登录就直奔。如果不是,则弹出一个登录屏幕给他们。

有人能帮我弄清楚发生了什么事吗?

谢谢大家!

+0

这是一个常见问题,您需要根据http://www.wiktorzychla.com/2012/06/iis-75-integrated-security-with-no.html – 2014-09-30 18:22:13

回答

0

执行以下操作,

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

希望它能帮助。

+0

几乎检查您的配置。我已将模拟器更改为“true”,并仅使用了<'标签。更新你的答案,以便我可以接受它。 – Kiwanax 2014-10-01 12:03:54

+0

@Kiwanax完成。谢谢 :) – Rex 2014-10-01 13:15:03