您的位置:首页 > 编程语言 > ASP

Asp.net 子域共享cookie

2017-02-10 08:45 766 查看
最近项目遇到要共享cookie的问题,本来后台保存session用的是redis来保存数据的。所以只需要2个站点发的ASP.NET_SessionId是相同的就可以,并且它的Domain 是父级域名。实现code:

protected void Session_Start(object sender, EventArgs e)
{
Response.Cookies["ASP.NET_SessionId"].Value = Session.SessionID.ToString();
Response.Cookies["ASP.NET_SessionId"].Domain = ".aa.com";
}


网上有类似参考地址:Asp.Net集群中Session共享

很多时候项目的cookie name 都是需要替换默认的ASP.NET_SessionId(需要读取配置),同时我们在开发的时候也不知道具体的父级域名(需要用正则表达式),所以具体实现code如下:

protected void Session_Start(object sender, EventArgs e)
{
SessionStateSection config = (SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState");
string cookieName = config.CookieName;
Response.Cookies[cookieName].Value = Session.SessionID.ToString();
string url = Request.Url.ToString();
Regex reg = new Regex("([^.]*).([^.]*).com");
Match m = reg.Match(url);
if (m.Groups.Count > 2)
{
Response.Cookies[cookieName].Domain = $".{m.Groups[2].Value}.com";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: