如何在多个服务器上托管的一个应用程序中启用单个登录

时间:2014-10-14 18:31:50

标签: asp.net sql-server hosting web-hosting

我有asp.net应用程序,我们参加将它放在具有负载平衡服务器的几台服务器上,所以我 当用户登录到我的应用程序时,负载平衡会将他转发到服务器场上的服务器,并且当他发出另一个请求时,服务器可能会将他发送到我们服务器场上有应用程序的服务器上的另一个服务器 问题是第二个服务器应用程序不会验证用户是否在第一个服务器应用程序中登录

所以我的问题是如何使服务器应用程序识别出用户已经登录

步骤说明:

1-用户向我们的应用程序发出请求 2-请求将进入负载平衡服务器 3-负载平衡将它转发到服务器号1,用户将登录并使用该应用程序 4-来自用户的另一个请求来到负载平衡(可能是他点击按钮或任何这样的事情) 5 - 负载平衡可能会将他转发到具有该应用程序的服务器场中的另一台服务器 6-应用程序将要求用户再次登录,因为他不知道他已登录到另一台服务器

所以现在问题 如何让第二台服务器知道该用户已经登录????

1 个答案:

答案 0 :(得分:1)

您需要使用跨服务器边界的会话管理选项,例如StateServer或SqlServer

http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx

  

ASP.NET会话状态支持会话数据的几种不同存储选项。每个选项都由SessionStateMode枚举中的值标识。以下列表描述了可用的会话状态模式:

     

StateServer模式,它将会话状态存储在名为ASP.NET状态服务的单独进程中。这可确保在重新启动Web应用程序时保留会话状态,并使会话状态可用于Web场中的多个Web服务器。

     

SQLServer模式将会话状态存储在SQL Server数据库中。这可确保在重新启动Web应用程序时保留会话状态,并使会话状态可用于Web场中的多个Web服务器。

要在web.config中配置所选选项,请参阅

http://msdn.microsoft.com/en-us/library/vstudio/h6bb9cz9(v=vs.100).aspx