C# 如何在托管在同一服务器上的两个网站中共享同一会话?
我有两个web应用程序托管在服务器上,使用IIS上创建的虚拟目录 比如:123.12.23.124/site123.12.23.124/site2 现在,我需要访问在site2的site1中创建的会话。这就是我到目前为止所做的:C# 如何在托管在同一服务器上的两个网站中共享同一会话?,c#,asp.net,session,C#,Asp.net,Session,我有两个web应用程序托管在服务器上,使用IIS上创建的虚拟目录 比如:123.12.23.124/site123.12.23.124/site2 现在,我需要访问在site2的site1中创建的会话。这就是我到目前为止所做的: 更改两个站点的web.config文件以将stateserver会话用作 sessionState mode=“StateServer”cookieless=“false”timeout=“720”stateConnectionString=“tcpip=127.0.0
session["user"] = "xxxx";
并通过以下方式访问site2:
if(session["user"] != null)
{
}
else
{
//Always coming here
}
您在web.config中将会话服务器设置错误 sessionState mode=“StateServer”cookieless=“false”timeout=“720”stateConnectionString=“tcpip=127.0.0.1:42424” 它不应该是127.0.0.1。查找并填充状态服务器的真实ip。这是双向的 1-使用在中折扣的共享会话 2-使用机器钥匙 如果您对身份验证等问题有疑问,这是非常有用的 因为当您登录一个站点时,您登录了同一服务器上的其他站点 对于手动生成的键值,设置应类似于以下示例
<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
IIS中的虚拟目录是否在同一应用程序域下运行?可能重复:您必须使用共享会话此链接可以使用完整的[shared session][1][1]:您不能使用默认会话实现,也不能使用黑客攻击。有许多相关的问题(即建议的一个问题,或重复的一个问题)。请查看相关帖子,更新您的问题,了解哪些方法不适合您。(或者,如果你找到一个你喜欢的,可以关闭为重复)这应该是注释,它也与“如何绕过默认会话状态实现对不同站点之间不共享状态的限制”问题无关。它只是web.config中的配置。我认为不需要额外的“旁路”。