我将 Windows 身份验证
用于负载平衡网站。负载平衡基于两个 IIS Web 服务器。我的站点中有一项功能允许用户重新登录,例如 Sharepoint 登录为不同的用户。
但我注意到,当我重新登录时,一个站点中的 User.Identity
已更改,但另一个站点仍保留之前的帐户。
我怀疑cookie里面有东西应该清楚
有没有人在玩负载平衡时遇到过这个问题?或者您知道一些可能有帮助的相关文章吗?
我不知道如何解决这个问题。任何帮助将不胜感激。
<强>
顺便一提
我使用这种方法来实现它在单个服务器上工作的重新登录。 http://www.roelvanlisdonk.nl/?p=825 .
大家好,
我仍在研究此功能。
我在我的主页上打印了 User.Identity.Name。当我更改帐户时,User.Identity.Name 输出已正确更改。但是当我刷新首页时,有时首页会显示之前的账号。
最佳答案
如果我没看错你的评论,你的设置涉及两个网络服务器,每个都有一个具有相同名称(并且可能是相同密码)的本地用户,并且你正试图在网络场场景中使用 Windows 身份验证.
在您的情况下,每台计算机都有自己的帐户和名称 - 假设您的用户名是“AuthorizedUser”。请记住,如果 AuthorizedUser 是两台机器上的本地帐户,那么这就是两个完全不同的用户帐户。每台计算机检查自己的用户帐户信息以验证此人的身份,在非域情况下,计算机 A 没有理由信任在计算机 B 上通过身份验证的用户。
如果 有可能计算机 A 受信任的计算机 B 没有域场景 - 只是两台随机计算机碰巧拥有同名用户,想象一下侵入任何人的计算机是多么容易使用 Windows 身份验证的 Web 服务器。您所要做的就是猜测一个有效的用户名,而不是一个有效的用户名/密码组合。很容易看出为什么这是个坏主意。
要使 Windows 身份验证在网络场方案中起作用,您需要使用域用户(Windows NT 域)并且该域用户需要在两台服务器上设置相同的权限。这样,只有一个 AuthorizedUser,两个 Web 服务器都可以根据域验证身份。两台 Web 服务器都将自动相信域 Controller 已正确授权用户并信任该域。
关于asp.net - User.Identity 在我的 ASP.NET 网站的负载平衡场景下丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336653/