首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

有关cookies值的获取有关问题

2012-12-22 
有关cookies值的获取问题 客户端访问webservice代码如下:string cookies string.EmptyHttpCookie cokie

有关cookies值的获取问题
 客户端访问webservice代码如下:
string cookies = string.Empty;
            HttpCookie cokie = new HttpCookie("MyCook");//初使化
            if (HttpContext.Current.Request.Cookies["MyCook"] != null)
            {  cookies = HttpContext.Current.Request.Cookies["MyCook"].Value;            }
            string url = "http://localhost/INA_WebService/Service.asmx/ImportStyle";
 string sendData = "param="+a;
            string outputString = String.Empty;
            HttpWebRequest hwrq = (HttpWebRequest)HttpWebRequest.Create(url);
            hwrq.Method = "POST";
            byte[] postData = System.Text.Encoding.UTF8.GetBytes(sendData);
            hwrq.ContentType = "application/x-www-form-urlencoded";
            hwrq.ContentLength = postData.Length;
            Stream writeStream = hwrq.GetRequestStream();
            writeStream.Write(postData, 0, postData.Length);
            writeStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)hwrq.GetResponse();
            StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            outputString = sr.ReadToEnd();
            sr.Close();
访问的webservice代码如下:
[WebMethod]    
   public bool ImportStyle()
    {
        string userName=DataOperation.GetCookies();
        bool strbool = false    ;
        if (userName != "")
        {
strbool = true;    
}
else
{strbool = false;}
return strbool;

GetCookies()代码如下:
  public static string GetCookies()
    {
        string cookies=string.Empty ;
         HttpCookie cokie = new HttpCookie("MyCook");//初使化
         if (HttpContext.Current.Request.Cookies["MyCook"] != null)
    { cookies = HttpContext.Current.Request.Cookies["MyCook"].Value;//输出全部的值
    }
        return cookies ;
    }

问题: 调试发现红色字体的cookies值是存在的,但是红色字体的userName值为空,客户端返回的值是false。红色字体的cookies值是存在说明浏览器是存在cookies值的,但是为什么服务器端获取不到cookies值呢,请问这个怎么改能获取到
------最佳解决方案--------------------


cookies保存在客户端,你用两台电脑测试一下,可以获取cookies值
[其他解释]
你的客户端去访问 

HttpContext.Current.Request.Cookies
 没有任何意义。你的客户端(实际上大概是asp.net程序)是去读取自己的客户端(客户端的客户端)的cookie,而不是给自己的服务器端推送cookie。

请查询在一个 HttpWebReqeust 中使用 cookiecontainer的信息。
[其他解释]
使用System.Net中的cookie


        private void GetStringDataFromServer(string requestAddress, Cookie[] cookies)
        {
            Uri HttpSite = new Uri(requestAddress);
            HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(HttpSite);
            if (cookies != null)
            {
                wreq.CookieContainer = new CookieContainer();
                for (int i = 0; i < cookies.Length; i++)
                {
                    wreq.CookieContainer.Add(HttpSite, cookies[i]);
                }
            }
            RequestState rs = new RequestState();
            rs.Request = wreq;
            IAsyncResult r = (IAsyncResult)wreq.BeginGetResponse(new AsyncCallback(RespCallback), rs);
            allDone.WaitOne();
        }

[其他解释]
有没人知道为什么啊,急啊
[其他解释]
引用:
你的客户端去访问 


C# code?



1

HttpContext.Current.Request.Cookies 没有任何意义。你的客户端(实际上大概是asp.net程序)是去读取自己的客户端(客户端的客户端)的cookie,而不是给自己的服务器端推送cookie。

请查询在一个 HttpWebReqeust 中使用 cookiecontainer的信息。

我现在测试的时候服务器与客户端是同一个计算机,为什么红色的cookies有值,而下面服务器端的cookies空呢
[其他解释]
我事先是设置了cookies值的
[其他解释]
引用:
使用System.Net中的cookie


C# code?



12345678910111213141516171819

        private void GetStringDataFromServer(string requestAddress, Cookie[] cookies)         {             Uri HttpSite = ne……


我是想问为什么服务器端获取不到cookies值


[其他解释]
自己顶一下啊,有没有人能解决啊
[其他解释]

引用:
你的客户端去访问 


C# code?



1

HttpContext.Current.Request.Cookies 没有任何意义。你的客户端(实际上大概是asp.net程序)是去读取自己的客户端(客户端的客户端)的cookie,而不是给自己的服务器端推送cookie。

请查询在一个 HttpWebReqeust 中使用 cookiecontainer的信息。

上面红色的cookies只是用来测试一下存不存在cookies值的

热点排行