C# 在同一解决方案和域上的两个网站应用程序之间共享会话

C# 在同一解决方案和域上的两个网站应用程序之间共享会话,c#,asp.net,iis,C#,Asp.net,Iis,我在同一个解决方案上并行运行两个网站,都在本地IIS上运行,主网站在domain/上运行,另一个在domain/api上运行 用户在web表单应用程序(domain/)中连接,然后我需要在域/api上对其进行授权,但尽管没有COR且发送头中的会话id相同,但api无法识别会话(在HttpContext.Current.session,count=0中没有数据写入),而web窗体项目可以识别 要在web api中启用会话,我添加了HttpContext.Current.SetSessionStat

我在同一个解决方案上并行运行两个网站,都在本地IIS上运行,主网站在
domain/
上运行,另一个在
domain/api
上运行

用户在web表单应用程序(domain/)中连接,然后我需要在
域/api
上对其进行授权,但尽管没有COR且发送头中的会话id相同,但api无法识别会话(在
HttpContext.Current.session
count=0
中没有数据写入),而web窗体项目可以识别


要在web api中启用会话,我添加了
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required)
下的
Application\u PostAuthorizerRequest
中的
全局.asax

,如果确实需要这样做,您可以尝试将会话对象保存在数据库中,并在cookie上写入指向这些会话值的令牌,因为您说它们位于同一个域上,这两个应用程序都可以访问cookie并检索令牌,并从使用该令牌id存储的数据库中获取所需的值。当我必须像您一样对旧系统进行修改时,我也用同样的方法进行了一次修改。非常好,您可以快速将其钉在墙上。

为什么希望客户端和web服务共享会话?如果它们是作为一个单一的应用程序工作的,那么简单地将webservice制作成一个类。否则,如果API是一个真正的API,它将永远不会看到远程客户端会话。这是一个旧网站,它的一部分现在已经用API升级,我别无选择。用户保存在会话中。它并没有真正回答我的问题,我正在尝试获取会话,但没有成功。