cookie domain 无法读出?

问题描述

我在用asp.net做测试时发现设置cookie的domain属性后添加cookie,传值到其他页面时domain属性无法正常读出,但是其他属性都可以读出来,不知道为什么?测试代码如下:----------------------------------publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){//HttpCookiecookie=newHttpCookie("UserInfo");//cookie.Value="name";//cookie.Domain="domain";//Response.Cookies.Add(cookie);CookiesOperate.setCookie("UserNameCookie2","seek2",1,".127.0.0.1");}Button1.Click+=newEventHandler(Button1_Click);}voidButton1_Click(objectsender,EventArgse){//TextBox1.Text=Request.Cookies["UserNameCookie2"].Domain;Response.Redirect(@"//127.0.0.1/test/2.aspx");}}publicclassCookiesOperate{///<summary>///信息写入cookie///</summary>///<paramname="key">cookie名</param>///<paramname="value">cookie值</param>///<paramname="timeout">过期时间,0表示cookie默认的过期时间</param>publicstaticvoidsetCookie(stringkey,stringvalue,inttimeout,stringdomain){try{HttpCookiecookie=newHttpCookie(key);value=HttpUtility.UrlEncodeUnicode(value);cookie.Value=value;if(timeout!=0)cookie.Expires=DateTime.Now.AddDays(Convert.ToInt32(timeout));if(!String.IsNullOrEmpty(domain)){cookie.Domain=domain;}HttpContext.Current.Response.Cookies.Add(cookie);}catch{}}}-----------------------------------------------------------------------------------2.aspxpublicpartialclass_:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){Response.Write("Domain:"+Server.HtmlEncode(Request.Cookies["UserNameCookie2"].Domain));}}-----------------------------------------------------------------------还请专家解释!

解决方案

解决方案二:
浏览器根据Domain来判定传不传Cookies但不传Domain这个数据
解决方案三:
感谢楼上回复,是这样的我的站点里有多个2级域名。cookie代码如下---------------------问题:无法删除cookie==============================登陆时=====================================//保存一个月(默认)if(cookieExpires==2){//主站cookieUtilities.CookiesOperate.setCookie("UserNameCookie",Utilities.Security.MD5Encrypt(name),1,"diybl.com");//BBScookieUtilities.CookiesOperate.setCookie("BBSUserCookie",Utilities.Security.MD5Encrypt(name),1,"bbs.diybl.com");//如果在外包注册过if(wbUser!=0){///外包cookieUtilities.CookiesOperate.setCookie("WbUserCookie",Utilities.Security.MD5Encrypt(name),1,"trade.diybl.com");}}=========================信息写入cookie=========================================///<summary>///信息写入cookie///</summary>///<paramname="key">cookie名</param>///<paramname="value">cookie值</param>///<paramname="timeout">过期时间,0表示cookie默认的过期时间</param>publicstaticvoidsetCookie(stringkey,stringvalue,inttimeout,stringdomain){try{HttpCookiecookie=newHttpCookie(key);value=HttpUtility.UrlEncodeUnicode(value);cookie.Value=value;if(timeout!=0)cookie.Expires=DateTime.Now.AddMonths(Convert.ToInt32(timeout));if(!String.IsNullOrEmpty(domain)){cookie.Domain=domain;}HttpContext.Current.Response.Cookies.Add(cookie);}catch{}}///<summary>///获得cookie///</summary>///<paramname="key">cookie名</param>///<returns></returns>///publicstaticstringgetCookie(stringkey){if(HttpContext.Current.Request.Cookies[key]==null||HttpContext.Current.Request.Cookies[key].ToString()=="")returnnull;elsereturnHttpUtility.UrlDecode(HttpContext.Current.Request.Cookies[key].Value);}///<summary>///设置cookie过期///</summary>///<paramname="key">cookie名</param>///<returns></returns>publicstaticvoidKillCookie(stringkey){HttpCookiecookie=System.Web.HttpContext.Current.Request.Cookies[key];cookie.Values.Clear();cookie.Expires=DateTime.Now.AddYears(-1000);stringcookieDomain=GetCookieDomain(key);//HttpCookiecookie=newHttpCookie(key);//cookie.Value=null;if(!String.IsNullOrEmpty(cookieDomain)){cookie.Domain=cookieDomain;}//cookie.Expires=DateTime.Now.AddYears(-1000);HttpContext.Current.Response.Cookies.Set(cookie);}///<summary>///返回要删除cookie的域///</summary>///<paramname="key"></param>///<returns></returns>privatestaticstringGetCookieDomain(stringkey){stringcookieDomain="";if(key=="UserNameCookie"){cookieDomain="diybl.com";}if(key=="BBSUserCookie"){cookieDomain="bbs.diybl.com";}if(key=="WbUserCookie"){cookieDomain="trade.diybl.com";}returncookieDomain;}===============================删除cookie=====================================CookiesOperate.KillCookie("UserNameCookie");CookiesOperate.KillCookie("BBSUserCookie");CookiesOperate.KillCookie("WbUserCookie");

现在的问题是用户无法正常注销,我测试后发现是没有办法获得Domain域。请问应该怎么改?
解决方案四:
你设置cookieDomain="diybl.com";所有的二级域名就可以用你调协的Cookies
解决方案五:
你设置cookieDomain="diybl.com";所有的二级域名就可以用你的Cookies
解决方案六:
我的问题是注销的时候没办法注销啊!
解决方案七:
注销代码看下
解决方案八:
就是最下面那段===============================删除cookie=====================================CookiesOperate.KillCookie("UserNameCookie");CookiesOperate.KillCookie("BBSUserCookie");CookiesOperate.KillCookie("WbUserCookie");

时间: 2024-11-05 21:40:21

cookie domain 无法读出?的相关文章

Java web中Cookie与Session 异同总结

当我们在使用浏览器与服务器进行会话的过程中,就必然会产生一些数据.这个时候就需要对数据进行保存.比如常见的购物网站购物车信息的保存.保存客户端与服务器会话数据的两种技术是Cookie与Session. 一.Cookie 1.什么是Cookie? Cookie是保存在客户端的,以name,value的形式保存.当用户使用浏览器访问服务器产生数据时,服务器程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,web服

一个.net下通用的Cookie操作类

笔者曾经参与一个大型多用户商城的开发,系统用户角色很多,有买家,卖家,代理商,系统管理员 ,普通管理员,超级管理员等,这些用户都涉及到登陆系统,然后建立cookies的问题,由于角色的不同 ,这些用户登陆系统后,所建的cookies都相对独立,而且对一个多用户商城来说,cookies区分域很重要 ,不同的域名要建不同的域.因此笔者在开发的过程中,写了很多次的建cookies,取cookies的代码,不 胜其烦! 既然都是建cookies,那么肯定有共同点,我们何不抽象出来,写一个通用的Cooki

asp.net各种cookie代码和解析实例

 这篇文章主要介绍了asp.net各种cookie代码和解析实例,需要的朋友可以参考下 Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一起发送到服务器.浏览器对 Cookie 的大小有限制,因此,只有不超过 4096 字节才能保证被接受.   编写Cookie    代码如下: //方式1: Response.Cookies["username&

iOS 防 DNS 污染方案调研 --- Cookie 业务场景

概述 本文将讨论下类似这样的问题: WKWebView 对于 Cookie 的管理一直是它的短板,那么 iOS11 是否有改进,如果有,如何利用这样的改进? 采用 IP 直连方案后,服务端返回的 Cookie 里的 Domain 字段也会使用 IP .如果 IP 是动态的,就有可能导致一些问题:由于许多 H5 业务都依赖于 Cookie 作登录态校验,而 WKWebView 上请求不会自动携带 Cookie. WKWebView 使用 NSURLProtocol 拦截请求无法获取 Cookie

java-Java跨域共享cookie问题

问题描述 Java跨域共享cookie问题 比如像www.test1.com与www.test2两个完全不同的域 共享一个cookie 怎么实现啊 都看好多天了 都没有一个合适的方法,求来个大神解救啊 .....小弟万分感谢啊! 解决方案 跨顶级域不行,浏览器不会发送一个域名的cookie到另外一个域的,只能跨n级子域名,将cookie domain设置为顶级域名 要想共享cookie,你只能登陆成功的时候用script或者img对象加载另外一个域名的api接口,将cookie信息发送到这个接口

android开发中webview保存cookie问题的解决

最近老是发现在IE里会有Cookie的问题,如IE下面无法登出,或无法登录,或者登录后信息却无法取到,而Firefox下面一直是通过的,都试过好多次了,今天终于找回的主要的原因: Cookie的问题: 首先看一下我的Cookie存取代码 (这个Cookie操作支持二级域名访问) #region 存取Cookie /// 〈summary〉 /// 存Cookie /// Json Lee 2007-09-24 /// 〈/summary〉 /// 〈param name="strName&quo

基于 Jquery操作Cookie记录用户查询过信息

这是一个Cookie数据生成的列表, 每次单击查询会存储一个域名,并把最后一次查询的域名放在最上方.本例子最多存储10个,大家可以根据自己情况进行设置 下在咱们一起来看看是怎么实现的吧. 先写一个操作Cookie的JS文件如下 Code  代码如下 复制代码 function getid(id) {return (typeof id == 'string') ? document.getElementById(id) : id};function getOffsetTop(el, p) {var

jquery中cookie用法实例详解(获取,存储,删除等)_jquery

本文实例讲述了jquery中cookie用法.分享给大家供大家参考,具体如下: cookie在jquery中有指定的cookie操作类,下面我先来介绍我们在使用cookie操作类时的一些问题,然后介绍正确的使用方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现cookie有四个不同的属性: 名称,内容,域,路径 $.cookie('the_cookie'); // 读取 cookie $.cookie('the_cookie', 'the_value'); // 存储

【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie

原文:[ASP.NET Web API教程]5.5 ASP.NET Web API中的HTTP Cookie 5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.NET Web API中的HTTP Cookie 本文引自:http://www.asp.net/web-api/overview/working-with-http/http-cookies By Mike Wasson|September 17, 2012 作者:Mike Wasson | 日期: