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

标签 asp.net asp.net-mvc session subdomain

在我的网站上,我实现了自定义 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();
}

关于asp.net - 跨子域的ASP.NET MVC session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505253/

相关文章:

asp.net - 如何更新 Entity Framework 7 中的多对多关系?

c# - Linq to SQL Group by 和 sum in select with entity

c# - Url.Action 在布局页面上不起作用

java - 销毁 session

php - session 背后有什么故事

c# - 从 SQL Server 数据库获取数据集

javascript - 如果按下键盘上的按键则跳转到特定的 div

javascript - 在鼠标悬停时显示复选框显示表格中的每个单元格

c# - 返回成功付款 PayPal 上的客户信息

session - node.js Express/socket.io 与 facebook 的混合应用程序