zoukankan      html  css  js  c++  java
  • 学信网模拟登录2

     登录地址https://account.chsi.com.cn/passport/login?service=http%3A%2F%2Fmy.chsi.com.cn%2Farchive%2Fj_spring_cas_security_check

    1.发现页面在初始化的时候就创建的cookie,然后页面提交的时候会一起认真是否是合法的。

    用这个来存储cookie的值

    /// <summary>
    /// 请求注入的cookie
    /// </summary>
    public CookieContainer requestcookie = new CookieContainer();

    /// <summary>
    /// 返回的cookie
    /// </summary>

    public CookieCollection reponsecookie = new CookieCollection();

    reponsecookie = response.Cookies;
    requestcookie = new CookieContainer();
    foreach (Cookie cookie in response.Cookies)
    {
    requestcookie.Add(cookie);
    }

     

    2.然后来看看他需要提交什么信息,有时候还会出现name="captcha",这个是验证码的文本框。

    3.提交页面提交的时候会提交下面提交参数

    4.页面进行好几次302,然后在这个过程中有变化cookie 的值,所以这个时候要小心了,然后你做的时候登录成功了,但是你没有更新cookie的值,到时候在去访问其他页面的时候会显示未登录,所以你最后还要用

    //获取新的cookie
    requestcookie = request.CookieContainer;
    string strHeadersCookies = request.Headers["Cookie"];
    if (!string.IsNullOrWhiteSpace(strHeadersCookies))
    {
    string[] arrHeadersCookie = strHeadersCookies.Split(';');
    //reponsecookie = response.Cookies;
    //foreach (var strCookie in arrHeadersCookie)
    ///因为里面存储的是最新的在前面,所以要想要旧的cookie冲掉就要从后面获取。
    for (int cookiecount = arrHeadersCookie.Length - 1; cookiecount >= 0; cookiecount--)
    {
    string[] strsplitcookie = arrHeadersCookie[cookiecount].Split('=');
    string cookiename=strsplitcookie[0].Trim(' ');
    string cookievalue=strsplitcookie[1].Trim(' ');
    Cookie cookie = new Cookie(cookiename, cookievalue, "", response.ResponseUri.Host);
    reponsecookie.Add(cookie);
    }
    }

     回来更新你存储的cookie,

    这样就登录成功了。

  • 相关阅读:
    极大似然估计理解与应用
    逻辑回归理解及代码实现
    《剑指offer》---数值的整数次方
    线性回归理解及代码实现
    二叉搜索树(BST)---python实现
    《剑指offer》---顺时针打印矩阵
    《剑指offer》---二进制中1的个数
    《剑指offer》---输出链表倒数第k个结点
    版本控制-Git服务器搭建和常用命令使用
    hbase伪分布式平台搭建(centos 6.3)
  • 原文地址:https://www.cnblogs.com/zhian/p/6116334.html
Copyright © 2011-2022 走看看