问题描述
现有一个页面,只能通过登陆才能访问。不是后台,就是一个普通页面。测试发现,登陆并不是通过cookie记录的登陆状态,因为登陆成功后,通过webrequest对象的getresonse并没有获得有用的cookie值,具此判断,可能系统是通过Session来实现记录访问权限的,且关闭流览器后,要求重新登陆的问题,在客户端如何通过C#写WinForm程序获得访问这个页的权限,即得到Session的值。大侠们,求解!
解决方案
解决方案二:
Session集合也是在cookie中保存一个“有用的值”的。如果你确实连一个有用的值都没有发现,那么可能是你自己的问题。
解决方案三:
参考地址:
解决方案四:
解决方案五:
sessionid也在cookie里,你模拟会话的话,必须保存网站给你回发的cookie
解决方案六:
如果,我记得没错的话。这里是asp.net板块。
解决方案七:
不同的应用程序能使用同一个session吗?
解决方案八:
HttpWebRequestmyrequest=(HttpWebRequest)WebRequest.Create(LoginUrl);myrequest.Accept="text/html,application/xhtml+xml,application/xml,image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*";stringdata="UserName="+Uid+"&PassWord="+Pwd+"&Action=Log&Cookie=1";byte[]buffer=System.Text.Encoding.UTF8.GetBytes(data);myrequest.ContentLength=buffer.Length;myrequest.AllowAutoRedirect=true;myrequest.Method="POST";myrequest.ContentType="application/x-www-form-urlencoded";Streamrestream=myrequest.GetRequestStream();//将数据写入响应流restream.Write(buffer,0,buffer.Length);restream.Close();//得到响应报文对象HttpWebResponsemyresponse=(HttpWebResponse)myrequest.GetResponse();//获得响应报文中cookie内容(这里不知道对不对,系统成功后,是不是得到的正确cookie)stringmycookie=myresponse.Headers.Get("Set-Cookie");
请问上述mycooie方法中不能得到正确的cookie吗,能得到session吗,二楼的朋友,说是我的问题,请您指点一下,问题出在哪。
解决方案九:
求指点,求正解。最好写代码,看着明白一些。
解决方案十:
1、用一些工具,如fiddler看下request有没有重定向的,重定向会导致不返回cookie,可以能过设置HttpWebRequest.AllowAutoRedirect允不允许重定向2、HttpWebRequest有返回后,把返回的HttpWebResponse里面的cookie全部保存,然后在下次发送reqeust的时候再传回去CookieCollectioncookies;...foreach(CookiecinHttpWebResponse.Cookies){cookies.Add(c);}HttpWebRequest.CookieContainer.Add(cookies);
解决方案十一:
谢谢楼上,我再试试。