在IFrame中的ASP.NET Core 2.0应用中使用会话状态

时间:2019-02-07 14:08:05

标签: c# asp.net asp.net-core

我正在创建一个聊天机器人,该机器人位于客户网站的IFrame中。该机器人本身使用AJAX与.NET Core 2服务器进行通信。

我的问题是,当在浏览器中单独运行聊天机器人时,会话将按预期方式持久保存,但在IFrame中运行它会导致在每个请求上创建一个新会话。

现在,其原因是我正在使用会话cookie,并且大多数浏览器在使用iframe时都不喜欢这种方法。常规的ASP.NET MVC解决方案将使用无会话cookie,但是与.NET CORE中的许多其他地雷一样,不支持无cookie会话。

所以现在我被困住了,我不知道该怎么办。

1 个答案:

答案 0 :(得分:1)

简单的解决方案:使用返回的AJAX信息更改div的内容。完全不要使用iframe。不需要使用iframe。

仅当返回的内容是完整的HTML页面时,才需要使用iframe。根据您所说的,您可以只返回DIV内容。

要保持持久性,只需在页面加载时将初始DIV内容设置为会话状态数据即可。