如何在同一台服务器上托管的两个网站上共享同一会话?

时间:2014-08-15 17:33:26

标签: c# asp.net session

我使用在IIS上创建的虚拟目录在服务器上托管了两个Web应用程序。

喜欢:123.12.23.124/site1,123.12.23.124/site2

现在我需要访问site2中site1中创建的会话。这就是我到目前为止所做的:

  1. 将两个网站的web.config文件更改为
  2. 使用stateserver会话

    sessionState mode =" StateServer" Cookie的="假"超时=" 720" stateConnectionString这一=" TCPIP = 127.0.0.1:42424"

    1. 我进入了服务并在服务器上启动了asp.net状态服务。
    2. 我已在site1上设置会话:

      session["user"] = "xxxx";
      

      在site2中访问:

      if(session["user"] != null)
      {
      }
      else
      {
         //Always coming here
      }
      

2 个答案:

答案 0 :(得分:0)

在web.config中设置会话服务器错误,

sessionState mode =“StateServer”cookieless =“false”timeout =“720”stateConnectionString =“tcpip = 127.0.0.1 :42424”

不应该是127.0.0.1。查找并填写状态服务器的真实IP。

答案 1 :(得分:0)

这是两种方式 1-使用Shared Session中的discous共享会话 2-使用机器密钥 如果您的身份验证问题等,这非常有用 因为当您在一个站点登录时,您在同一服务器上的其他站点中登录

使用手动生成的键值,设置应类似于以下示例。

<machineKey  
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
               AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>