asp.net - 跨子域的ASP.NET MVC session

在我的网站上,我实现了自定义 session 值。在登录时,我将 session 值设置为某个对象。该对象用于从db中提取用户特定的数据。

现在的问题是,如果用户使用以下命令登录:test1.somesite.com并注销,然后再次使用以下代码登录:test2.somesite.com,则该用户仍从特定于test1.somesite.com的对象接收数据。

关键是无论哪个站点用户第二次登录,如果他使用另一个子域登录,他总是从先前的子域登录中获取数据。

从特定域注销后,我清除了所有 session (尝试了所有操作):通过将HttpContext.session [“UserDetail”] = null ;、 HttpContext.Session.Abandon()以及HttpContext.Session.Clear();清除。

但似乎没有任何作用

而且我也不太了解跨子域如何处理 session 变量。

我的意思是,如果我通过访问test1.somesite.com使用一个值初始化 session ,那么如果在同一台计算机和同一浏览器上我也打开test2.somesite.com,该值也将可见。

任何帮助请

最佳答案

听起来像一个cookie问题。尝试清除 session cookie。类似于以下内容:

if (!User.Identity.IsAuthenticated)
{
    if (Request.Cookies["ASP.NET_SessionId"] != null)
    {
        Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddDays(-1);
    }
    Session.Abandon();
}

https://stackoverflow.com/questions/2505253/

相关文章:

python-3.x - 从字符串生成用于加密的整数,反之亦然

reverse-engineering - 反向工程定制数据文件

magento - 通过一个简单的单一产品站点使用Magento

directx - 如何为游戏关卡编辑器实现平移和旋转小部件

.net - 寻找一个免费的工具来可视化C#的对象关系

sql - 从SQL Server 2008中的任意sql语句获取数据类型

.net - 除了 ILDASM/ILASM hacking 之外,是否可以修改程序集 list ?

code-analysis - TFS 2010:如何基于代码重复指标拒绝门禁签到?

web-scraping - 刮谷歌代码搜索

wpf - WPF ControlTrigger IsMouseOver