现在的位置: 首页 > 综合 > 正文

Cookie跨子域、虚拟目录, 实现通行证登录

2013年05月14日 ⁄ 综合 ⁄ 共 2132字 ⁄ 字号 评论关闭

 

Cookie跨子域、虚拟目录, 实现通行证登录

Cookie有三个属性需要注意一下: 1. Domain 域 2. Path       路径 3. Expires 过期时间 跨域操作需要设置域属性: Response.Cookies("MyCookie").Domain = "cnblogs.com"; (这里指的是泛域名) 这样在其它二级域名下就都可以访问到了, ASP 和 ASP.NET 测试通过 虚拟目录下访问:我在ASP端做了下测试,.NET的没试, 如果不指定Path属性, 不同虚拟目录下Cookie无法共享将Response.Cookies("MyCookie").Path = "/" 就可以了 总的写法: Response.Cookies("MyCookie").Domain = "cnblogs.com"; Response.Cookies("MyCookie").Path = "/" Response.Cookies("MyCookie").Expires = Now + 365; Response.Cookies("MyCookie")("Test") = "test"; .NET 清除Cookie HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename]; if (cookie != null) {                 cookie.Values.Clear();                 SetUserCookieExpireTime(cookiename, -1);                 cookie.Domain = _domain;                 System.Web.HttpContext.Current.Response.Cookies.Set(cookie); } public static void SetUserCookieExpireTime(string key, int days) {             System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;             System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;             System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days); } .NET 添加/更新Cookie public static void AddUserCookies(string key,string value, string cookiename, string domain) {             HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];             if (cookie == null)             {                 cookie = new HttpCookie(cookiename);                 cookie.Domain = domain;                 cookie.Path = _cookiepath;

                cookie.Values.Add(key, value);                 HttpContext.Current.Response.AppendCookie(cookie);             }             else             {                 if (System.Web.HttpContext.Current.Request.Cookies[cookiename].Values[key] != null)                 {                     cookie.Values.Set(key, value);                 }                 else                 {                     cookie.Domain = domain;                     cookie.Path = _cookiepath;

                    cookie.Values.Add(key, value);                     HttpContext.Current.Response.AppendCookie(cookie);                 }             } } 这种写法实现cookie跨域跨目录, 有不足之处望指正

看不太清楚的话可以访问:

http://hi.baidu.com/lisky119/blog/item/9f73321fef2ac266f624e43b.html

抱歉!评论已关闭.