在我的ASP.NET网站的负载平衡方案下,User.Identity丢失

时间:2011-12-01 04:46:31

标签: asp.net asp.net-mvc iis-7.5 windows-authentication

我将Windows Authentication与负载均衡网站一起使用。负载平衡基于两个IIS Web服务器。我的网站中有一项功能允许用户重新登录,例如 Sharepoint以不同的用户身份登录

但我注意到,当我重新启动时,一个站点中的User.Identity已更改,但另一个站点仍保留先前的帐户。

我怀疑cookie中有些东西应该清楚。

在玩装载平衡时有没有人遇到过这个问题?或者你知道一些可能有帮助的相关文章吗?

我不知道如何解决这个问题。任何帮助将不胜感激。



顺便说说 我使用这种方法来实现它在单个服务器上运行的relogon。 http://www.roelvanlisdonk.nl/?p=825

大家好,
我仍然在研究这个功能。 我在我的主页中打印User.Identity.Name。当我更改帐户时,User.Identity.Name输出正确更改。但是当我刷新主页时,有时先前的帐户将显示在主页上。

1 个答案:

答案 0 :(得分:0)

如果我正确地阅读您的评论,您的设置涉及两个Web服务器,每个服务器都有一个同名的本地用户(可能是相同的密码),并且您尝试在Web场方案中使用Windows身份验证

在您的情况下,每台计算机都有自己的帐户名称 - 假设您的用户名是“AuthorizedUser”。请记住,如果AuthorizedUser是两台计算机上的本地帐户,则这两个完全不同的用户帐户。每台计算机都会检查自己的用户帐户信息以验证此人的身份,而在非域状况下,计算机A没有理由信任在计算机B上进行过身份验证的用户。

如果 可能计算机是没有域方案的可信计算机B - 只是两个碰巧有一个同名用户的随机计算机,想象一下攻击任何人是多么容易使用Windows身份验证的Web服务器。您所要做的就是猜测有效的用户名,而不是有效的用户名/密码组合。很容易理解为什么这是一个坏主意。

要使Windows身份验证在Web场方案中工作,您需要使用域用户(Windows NT域),并且域用户需要在两台服务器上设置相同的权限。这样,只有一个AuthorizedUser,两个Web服务器都可以验证域的身份。两个Web服务器都会自动信任域控制器已正确授权用户并信任该域。