0

我想在同一个浏览器但在不同的选项卡中打开一个带有新会话的 asp.net 应用程序。如果可能,请告诉我解决方案。

4

1 回答 1

0

最简单的解决方案是配置会话不使用 cookie 作为会话标识符并使​​用客户端代码打开新窗口。要实现这种方法,您需要将web.config 文件中元素的cookieless属性设置为. 在这种情况下,请注意可用的副作用(来自 MSDN 的引用):sessionUseUri

注意 当您配置启用 AJAX 的 ASP.NET 网站时,请仅对 cookieless 属性使用 UseCookies 的默认值。ASP.NET AJAX 客户端脚本库不支持使用 URL 中编码的 cookie 的设置。

之后,您可以使用 javascript 打开带有新会话的新选项卡,如下所示:

<form id="form1" runat="server">
Session Id:
<%= Session.SessionID %>
<hr />
<input type="button" value="Open New Tab" onclick="openNewTab()" />
<script type="text/javascript">
    function openNewTab() {
        window.open(location.protocol + "//" + location.host + "/Default.aspx", "_blank");
    }
</script>
</form>

或者您可以实现不使用 cookie 作为会话标识符的自定义 SessionIDManager:SessionIDManager 类

于 2012-07-10T06:07:12.927 回答