ASP.NET操作Cookie
1.生成Cookie
public static void SetDataByCookie(string mainKey, string subKey, string value, string domain, int expireHours) { var cookie = Request.Cookies[mainKey]; if (cookie == null) { cookie = new HttpCookie(mainKey); } if (!String.IsNullOrEmpty(domain)) { cookie.Domain = domain; } cookie.Expires = DateTime.Now.AddHours(expireHours); cookie[subKey] = value; Response.Headers.Add("Access-Control-Allow-Credentials", "true"); Response.SetCookie(cookie); }
2.获取Cookie
public static string GetDataByCookie(string mainKey, string subKey) { if (Request.Cookies[mainKey] != null && Request.Cookies[mainKey][subKey] != null) { return Request.Cookies[mainKey][subKey]; } return ""; }
3.关于Cookie的Domain
①设置Domain是为了跨域操作Cookie,假如本应用的Cookie名与要跨域访问的Cookie名冲突,则会访问本应用的Cookie
②localhost和直接使用IP的应用是无法设置Domain的,如 http://localhost:8081/login.aspx 、http://121.211.112.111:8081等
这就可能导致一种问题,同一台服务器上有两台未绑定域名的且不相关的网站:http://121.211.112.111:8081,http://121.211.112.111:8083
则二者的Cookie可以互相访问。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。