求大神!再发一贴!获取cookie

公西雒 2014-03-31 02:50:36
详细情况请见下面两个帖子
http://bbs.csdn.net/topics/390743945
http://bbs.csdn.net/topics/390745025
下面简单描述下我的需求:通过客户端登录本地服务器搭建的网站。
但是获取cookie时,获取到的sessionid不对啊,跟浏览器直接登录时的产生的session不一样,那个session是固定的id,而我获取的总是在变。
自己分析是,设置request时没有设置对。请大神做下解答啊!
...全文
188 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 12 楼 wawd74520 的回复:
[quote=引用 11 楼 danding_ge 的回复:] [quote=引用 10 楼 jimil 的回复:] http://wenku.baidu.com/link?url=Vh78mzj7x1P5rDp037yV7iOO1fQgdJ1HoX_KKOk4A8pt-NImKOJoLV3RHjR_CL0Ue0zxZDbiPBoQwfCJ3pJjbqHMBvEHCSPF8y7bZ82nj4u 加解密的基本操作,你看一下,主要思路: 把用户名和密码加密,用post或get方法传递到功能页上,功能页把它解密出来,并实现登陆,这个应该不难吧? 这里说几个功能要点:一、功能页要学会识别数据,即数据哪里来的,安不安全。第二加密要安全,不能被人破解。三、如果出现用户名和密码对不上怎么办。四、防止有人注入。五、登陆实现后跳转要快,用JS写出跳转,别用response。
大哥我就是说你认为不难的部分我不会啊!加密解密我会的……主要问题在用post或get方法传递到功能页实现登陆上啊![/quote] 你随便弄个网站登录给我 我帮你试试 给你dom[/quote]马上下班了,明天再说吧=。=
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 12 楼 wawd74520 的回复:
[quote=引用 11 楼 danding_ge 的回复:] [quote=引用 10 楼 jimil 的回复:] http://wenku.baidu.com/link?url=Vh78mzj7x1P5rDp037yV7iOO1fQgdJ1HoX_KKOk4A8pt-NImKOJoLV3RHjR_CL0Ue0zxZDbiPBoQwfCJ3pJjbqHMBvEHCSPF8y7bZ82nj4u 加解密的基本操作,你看一下,主要思路: 把用户名和密码加密,用post或get方法传递到功能页上,功能页把它解密出来,并实现登陆,这个应该不难吧? 这里说几个功能要点:一、功能页要学会识别数据,即数据哪里来的,安不安全。第二加密要安全,不能被人破解。三、如果出现用户名和密码对不上怎么办。四、防止有人注入。五、登陆实现后跳转要快,用JS写出跳转,别用response。
大哥我就是说你认为不难的部分我不会啊!加密解密我会的……主要问题在用post或get方法传递到功能页实现登陆上啊![/quote] 你随便弄个网站登录给我 我帮你试试 给你dom[/quote] 网站是用phpthink做的,不好弄过来啊!还连着数据库……要不加QQ吧117163304
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
引用 11 楼 danding_ge 的回复:
[quote=引用 10 楼 jimil 的回复:] http://wenku.baidu.com/link?url=Vh78mzj7x1P5rDp037yV7iOO1fQgdJ1HoX_KKOk4A8pt-NImKOJoLV3RHjR_CL0Ue0zxZDbiPBoQwfCJ3pJjbqHMBvEHCSPF8y7bZ82nj4u 加解密的基本操作,你看一下,主要思路: 把用户名和密码加密,用post或get方法传递到功能页上,功能页把它解密出来,并实现登陆,这个应该不难吧? 这里说几个功能要点:一、功能页要学会识别数据,即数据哪里来的,安不安全。第二加密要安全,不能被人破解。三、如果出现用户名和密码对不上怎么办。四、防止有人注入。五、登陆实现后跳转要快,用JS写出跳转,别用response。
大哥我就是说你认为不难的部分我不会啊!加密解密我会的……主要问题在用post或get方法传递到功能页实现登陆上啊![/quote] 你随便弄个网站登录给我 我帮你试试 给你dom
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 10 楼 jimil 的回复:
http://wenku.baidu.com/link?url=Vh78mzj7x1P5rDp037yV7iOO1fQgdJ1HoX_KKOk4A8pt-NImKOJoLV3RHjR_CL0Ue0zxZDbiPBoQwfCJ3pJjbqHMBvEHCSPF8y7bZ82nj4u 加解密的基本操作,你看一下,主要思路: 把用户名和密码加密,用post或get方法传递到功能页上,功能页把它解密出来,并实现登陆,这个应该不难吧? 这里说几个功能要点:一、功能页要学会识别数据,即数据哪里来的,安不安全。第二加密要安全,不能被人破解。三、如果出现用户名和密码对不上怎么办。四、防止有人注入。五、登陆实现后跳转要快,用JS写出跳转,别用response。
大哥我就是说你认为不难的部分我不会啊!加密解密我会的……主要问题在用post或get方法传递到功能页实现登陆上啊!
jimil 2014-03-31
  • 打赏
  • 举报
回复
http://wenku.baidu.com/link?url=Vh78mzj7x1P5rDp037yV7iOO1fQgdJ1HoX_KKOk4A8pt-NImKOJoLV3RHjR_CL0Ue0zxZDbiPBoQwfCJ3pJjbqHMBvEHCSPF8y7bZ82nj4u 加解密的基本操作,你看一下,主要思路: 把用户名和密码加密,用post或get方法传递到功能页上,功能页把它解密出来,并实现登陆,这个应该不难吧? 这里说几个功能要点:一、功能页要学会识别数据,即数据哪里来的,安不安全。第二加密要安全,不能被人破解。三、如果出现用户名和密码对不上怎么办。四、防止有人注入。五、登陆实现后跳转要快,用JS写出跳转,别用response。
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 7 楼 jimil 的回复:
太多的问题内容一般不想看,你的意思是不是通过一个客户端去访问一个网站,然后实现登陆? 这个网站是你开发的吧?那还不简单,把用户名和密码加密一下,通过网站某个功能页把它转换成登陆不就行了? 何必一定要纠结于自己生成呢?
新人不懂啊!如果能提供个可行的代码就太好了! 通过网站某个功能页把它转换成登陆——就是这里不会!有例子吗?
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 6 楼 wawd74520 的回复:
你自己的页面 怎么post 你应该最清楚吧
新人 新人 没接触过网络 网站是同事做的,我也只是大概看懂了,怎么post我是真不懂啊。 这问题纠结了2天了,一直在看在研究,本地的服务器,你是连不上了…… 附F12信息
Request URL:http://localhost/gyjw/index.php/index/login_into
Request Method:POST
Status Code:200 OK
Request Headersview parsed
POST /gyjw/index.php/index/login_into HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 99
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1574.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost/gyjw/index.php/index/Index.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=88b0mepbjeq3vv1lenl3qfv0s4
Form Dataview sourceview URL encoded
admin:admin
password:424
__hash__:9dcee4d5bcfb44270f8cbfaebbc2d786_cbebe27eff89edd8bb6e55eabf493c98
Response Headersview parsed
HTTP/1.1 200 OK
Date: Mon, 31 Mar 2014 06:27:07 GMT
Server: Apache/2.2.8 (Win32) PHP/5.2.6
X-Powered-By: ThinkPHP
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Content-Length: 1452
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
jimil 2014-03-31
  • 打赏
  • 举报
回复
太多的问题内容一般不想看,你的意思是不是通过一个客户端去访问一个网站,然后实现登陆? 这个网站是你开发的吧?那还不简单,把用户名和密码加密一下,通过网站某个功能页把它转换成登陆不就行了? 何必一定要纠结于自己生成呢?
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
你自己的页面 怎么post 你应该最清楚吧
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
引用 4 楼 danding_ge 的回复:
[quote=引用 1 楼 wawd74520 的回复:] 登录后 把cookie弄过来 try StartIE
大哥 我的目的就是要登录啊!登录得获得cookie啊!获取不到正确的啊![/quote] 你也几级了 怎么会 不会捏? 来个链接 我试试
公西雒 2014-03-31
  • 打赏
  • 举报
回复
引用 1 楼 wawd74520 的回复:
登录后 把cookie弄过来 try StartIE
大哥 我的目的就是要登录啊!登录得获得cookie啊!获取不到正确的啊!
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
 public class SCookie
    {
        public CookieContainer mycookie = new CookieContainer();//定义cookie容器
        public Object obj = new Object();
        public byte[] byt = new byte[1];
        public void upcookie(CookieCollection cookie)
        {
            for (int i = 0; i < cookie.Count; i++)
            {
                mycookie.Add(cookie[i]);
            }
            obj = mycookie;
            byt = ObjectToBytes(obj);
        }
        /**/
        /// <summary>
        /// 将一个object对象序列化,返回一个byte[]
        /// </summary>
        /// <param name="obj">能序列化的对象</param>
        /// <returns></returns>
        public static byte[] ObjectToBytes(object obj)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                IFormatter formatter = new BinaryFormatter();
                formatter.Serialize(ms, obj);
                return ms.GetBuffer();
            }
        }

        /**/
        /// <summary>
        /// 将一个序列化后的byte[]数组还原
        /// </summary>
        /// <param name="Bytes"></param>
        /// <returns></returns>
        public object BytesToObject(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                IFormatter formatter = new BinaryFormatter();
                return formatter.Deserialize(ms);
            }
        }
        public CookieContainer getcookie()
        {
            return mycookie;
        }
    }
使用方法 bCookie.upcookie(myResponse.Cookies);
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
记得域名改成你用的。
失落的神庙 2014-03-31
  • 打赏
  • 举报
回复
class CookieMD
    {
        public static List<Cookie> GetAllCookies(CookieContainer cc)
        {
            List<Cookie> lstCookies = new List<Cookie>();
            Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable",
                System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField |
                System.Reflection.BindingFlags.Instance, null, cc, new object[] { });
            foreach (object pathList in table.Values)
            {
                SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list",
                    System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField
                    | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { });
                foreach (CookieCollection colCookies in lstCookieCol.Values)
                    foreach (Cookie c in colCookies) lstCookies.Add(c);
            }
            return lstCookies;
        }

        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);


        public static bool StartIE(CookieContainer cc,string url)
        {
            try
            {
                List<Cookie> TempCookies = CookieMD.GetAllCookies(cc);
                foreach (Cookie i in TempCookies.ToArray())
                {
                    CookieMD.InternetSetCookie(
                "http://weibo.com",
                i.Name.ToString(),
                i.Value.ToString() + ";expires=Sun,22-Feb-2099 00:00:00 GMT");
                }
                Process.Start("iexplore.exe", url);
                return true;
            }
            catch { return false; }
        }

    }
登录后 把cookie弄过来 try StartIE

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧