Esempio n. 1
0
        protected bool CheckValCode(string code)
        {
            var nvc = new NameValueCollection
            {
                { "token", token },
                { "tpl", TPL },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "verifycode", code },
                { "codestring", verifyStr },
                { "callback", "bd__cbs__" + HttpUtil.GenerateCallBack() },
            };
            HttpResponseMessage response = httpClient.GetAsync(new Uri("https://passport.baidu.com/v2/?checkvcode&" + nvc.ToQueryString())).Result;

            response.EnsureSuccessStatusCode();
            String result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                if (regex.IsMatch(result))
                {
                    //不是纯json需要match一下
                    dynamic obj = JsonConvert.DeserializeObject <JObject>(regex.Match(result).Value);
                    var     no  = obj.errInfo.no.Value;
                    if (no.Equals("0"))
                    {
                        valcode = code;
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 2
0
        private bool GetPubksyAndRsakey()
        {
            bool res = false;
            var  nvc = new NameValueCollection
            {
                { "token", token },
                { "tpl", TPL },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "gid", gid },
                { "callback", "bd__cbs__" + HttpUtil.GenerateCallBack() },
            };
            HttpResponseMessage response = httpClient.GetAsync(new Uri("https://passport.baidu.com/v2/getpublickey?" + nvc.ToQueryString())).Result;

            response.EnsureSuccessStatusCode();
            String Result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                if (regex.IsMatch(Result))
                {
                    //不是纯json需要match一下
                    dynamic obj = JsonConvert.DeserializeObject <JObject>(regex.Match(Result).Value);
                    var     no  = obj.errno.Value;
                    if (no.Equals("0"))
                    {
                        pubksy = obj.pubkey.Value;
                        rsakey = obj.key.Value;
                        res    = true;
                    }
                }
            }
            return(res);
        }
Esempio n. 3
0
        //判断登陆是否需要验证码
        private void LoginCheck()
        {
            var nvc = new NameValueCollection
            {
                { "token", token },
                { "tpl", TPL },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "sub_source", "leadsetpwd" },
                { "username", userName },
                { "callback", "bd__cbs__" + HttpUtil.GenerateCallBack() },
            };
            HttpResponseMessage response = httpClient.GetAsync(new Uri("https://passport.baidu.com/v2/api/?logincheck&" + nvc.ToQueryString())).Result;

            response.EnsureSuccessStatusCode();
            String Result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                dynamic result = JsonConvert.DeserializeObject <JObject>(regex.Match(Result).Value);
                var     no     = result.errInfo.no.Value;
                if (no.Equals("0"))
                {
                    isNeedVerifyCode = !string.IsNullOrEmpty(result.data.codeString.Value);
                    verifyStr        = result.data.codeString.Value;
                }
            }
        }
Esempio n. 4
0
        public Stream GetValidImage()
        {
            var nvc = new NameValueCollection
            {
                { "token", token },
                { "tpl", TPL },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "fr", "login" },
                //{"vcodetype", "7ea7JrZpMpKLyZu112UWT4NIYUCa8eOetNIn0rP8P6FMti58cJ8BIl1lnRqX9fdeYp84BbSMmr+yLUGUd/Do8yDrI/YV0uaa400z"},
                { "callback", "bd__cbs__" + HttpUtil.GenerateCallBack() },
            };

            string s1 = GetCookieValue("BAIDUID");
            string s2 = GetCookieValue("FP_UID");

            //HttpClient hc = new HttpClient(new HttpClientHandler() { CookieContainer = this.cookieContainer});

            HttpResponseMessage response = httpClient.GetAsync(new Uri("https://passport.baidu.com/v2/?reggetcodestr&" + nvc.ToQueryString())).Result;

            response.EnsureSuccessStatusCode();
            String result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                if (regex.IsMatch(result))
                {
                    //不是纯json需要match一下
                    dynamic obj = JsonConvert.DeserializeObject <JObject>(regex.Match(result).Value);
                    var     no  = obj.errInfo.no.Value;
                    if (no.Equals("0"))
                    {
                        verifyStr = obj.data.verifyStr.Value;
                        response  = httpClient.GetAsync(new Uri("https://passport.baidu.com/cgi-bin/genimage?" + obj.data.verifyStr.Value)).Result;
                        response.EnsureSuccessStatusCode();
                        if (response.StatusCode.Equals(HttpStatusCode.OK))
                        {
                            return(response.Content.ReadAsStreamAsync().Result);
                        }
                        return(null);
                    }
                }
                return(null);
            }
            return(null);
        }
Esempio n. 5
0
        private bool GetToken()
        {
            bool res = false;
            var  nvc = new NameValueCollection
            {
                { "tpl", TPL },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "class", "login" },
                { "gid", gid },
                { "logintype", "dialogLogin" },
                { "callback", "bd__cbs__" + HttpUtil.GenerateCallBack() },
            };
            string TEST10 = GetCookieValue("BAIDUID");
            string TEST11 = GetCookieValue("FP_UID");
            HttpResponseMessage response = httpClient.GetAsync(new Uri("https://passport.baidu.com/v2/api/?getapi&" + nvc.ToQueryString())).Result;

            response.EnsureSuccessStatusCode();
            String Result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                if (regex.IsMatch(Result))
                {
                    //不是纯json需要match一下
                    dynamic result = JsonConvert.DeserializeObject <JObject>(regex.Match(Result).Value);
                    var     no     = result.errInfo.no.Value;
                    if (no.Equals("0") && result.data.token.Value != "the fisrt two args should be string type:0,1!")
                    {
                        token = result.data.token.Value;
                        res   = true;
                    }
                }
            }
            return(res);
        }
Esempio n. 6
0
        public string Login(string verifyCode)
        {
            if (IsNeedVerifyCode)
            {
                if (!CheckValCode(verifyCode))
                {
                    return("验证码输入错误");
                }
            }
            string res         = string.Empty;
            var    pemToXml    = RSAHelper.PemToXml(pubksy);
            var    password    = RSAHelper.RSAEncrypt(pemToXml, this.password);
            var    httpContent = new FormUrlEncodedContent(new Dictionary <string, string>()
            {
                { "staticpage", "https://passport.baidu.com/static/passpc-account/html/v3Jump.html" },
                //{"staticpage","http://app.baidu.com/sfile/v3Jump.html"},
                { "charset", "UTF-8" },
                { "token", token },
                { "tpl", _tpl },
                { "subpro", "" },
                { "apiver", "v3" },
                { "tt", HttpUtil.GetTimeStamp() },
                { "codestring", verifyStr },
                { "safeflg", "0" },
                { "u", "https://tieba.baidu.com/index.html#" },
                { "isPhone", "false" },
                { "detect", "1" },
                { "quick_user", "0" },
                { "gid", gid },
                { "logintype", "dialogLogin" },
                { "logLoginType", "pc_loginDialog" },
                { "idc", "" },
                { "loginmerge", "true" },
                { "splogin", "rate" },
                { "username", userName },
                { "password", password },
                { "verifycode", valcode },
                { "mem_pass", "on" },
                { "rsakey", rsakey },
                { "crypttype", "12" },
                { "ppui_logintime", HttpUtil.Generateplogintime() },
                { "countrycode", "" },
                //{"fp_uid", "960338120bd__cbs__"+HttpUtil.GenerateCallBack()+"8b87eb0671ea3df2d"},
                //{"fp_info", "960338120bd__cbs__"+HttpUtil.GenerateCallBack()+"8b87eb0671ea3df2d002~~~nxnn3QqCEgie0x2_Unn6yqz090gtoCdtRC_qqz090gtoCd0RC_unmCsVnmCsJnnsEnm3pOq0xwEgi~JIJH4zEp4gVkJAVkFnERaUirBniP4~LPJoEWJ9HdXAFiBzieJAt~4Au~6IskJI2eJnTWcutK4gtOBgugJGJW6ItK8UsianJW6ItKanTw7AE-czFW4mTpXobP4AEYF3JAXAEdJI2M4AwQJzbNJnBRJzHq6UswJAhQ4gJPXnhiJzBHJAwQ6A~W9zukXIJiYgTHJAVk8zieBnE-4zuWcAVw6grNanTLJgiec3tKazhNJEs3FiJHJIBiaRHH4UFiazVw4mLrJn6NBziiBgE-vUnsBqC0Rae0v__DUnvSUnvNUnsPq0KUEgi~JIJH4zEp4gVkJAVkFnERaUirBniP4~LPJoEWJDT9XnhRXdBwBzEn4nuxXmT9XnhRXdBwBzEn4nuxXmT86IFHBzEp4nii4UFu7nERBIFw6zTicusPaUFw6zTi9zukXIJiYgTHJAVkFIwi6dEk6AbWJDTY4dbk6AbWJGFP6dENJAVkFzh-4AukIA0Rnvr3asEYmvaimkP9ZPOov3MEUsAYhIlrZVvKsPFKg1C3kC8nAXMtlhgYdySekQyus4nkJjvvvDXur5lZwCCb~s~aCkfVFUnsKUnsAUnszUnsrnn2LqC7zCNYkl_CqzBAVO4zhd4C__nUnsmnwLYXeksnnvdUnvbnweUkGbjUnvRUnvYUnveUnvpquc93etp2TtpYl8p2x8paktx2ktY__"},
                //{"dv", "MDExAAoALQALAxIAHgAAAF00AAwCACKKzc3Nzdoidjd5PmwtYD9gMGMzbF1tMm0bfgxlA3o5VjJXDAIAIoqenp6eib3pqOah87L_oP-v_KzzwvKt8oThk_qc5abJrcgHAgAEkZGRkQwCACKKb29vb3nFkdCe2YvKh9iH14TUi7qK1Yr8meuC5J3esdWwBwIABJGRkZEHAgAEkZGRkQ0CACaRkZnW96PirOu5-LXqteW25rmIuOe4zqvZsNav7IPngsGpyKbBpAkCADWws87Pu7u7u7u8RkdELSxLS29vYDR1O3wubyJ9InIhcS4fL3AvWTxOJ0E4exRwFVY-XzFWMwYCACiRkZGRkZGRkZGRlNfX18NSUlJXAwMDAAAAAAVRUVFTi4uLjtra2tgAEwIAJpGzs7Pbr9ur2OLN4pb_mviZt9W03bnM4oHug6zFq8-q0vyU4I3hFwIACpOTsrK37ILZgO8WAgAisMSvn7GCuom4gbiOv4a2j7eCtoO1hLGBtoW9j7yKvIS1jQQCAAaTk5GQpZMVAgAIkZGQzjjFVycBAgAGkZOTg47uBQIABJGRkZ0QAgABkQcCAASRkZGRDQIABZGRku3tDQIAHpGRkhAJXRxSFUcGSxRLG0gYR3ZGGUY2VyRXIE89WQcCAASRkZGRDQIAHpGRmZuC1pfZnsyNwJ_AkMOTzP3Nks293K_cq8S20g0CACaRkZmcvemo5qHzsv-g_6_8rPPC8q3yhOGT-pzlpsmtyIvjguyL7gkCADWws87Pu7u7u7uwbWxvBgdgYERESx9eEFcFRAlWCVkKWgU0BFsEchdlDGoTUD9bPn0VdBp9GAcCAASRkZGRCQIAJ4qIU1I_Pz8_PzDW1oLDjcqY2ZTLlMSXx5ipmcaZ74r4kfeOzaLGowwCACKKnp6enozpvfyy9afmq_Sr-6j4p5am-abQtceuyLHynfmcDAIAIopvb29vfCp-P3E2ZCVoN2g4aztkVWU6ZRN2BG0LcjFeOl8HAgAEkZGRkQkCACOGhcDBDAwMDAwTubntrOKl97b7pPur-Kj3xvap9oXwkv-W4g"},
                { "callback", "parent.bd__pcbs__" + HttpUtil.GenerateCallBack() },
            });

            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
            //httpClient.DefaultRequestHeaders.Clear();
            //httpClient.DefaultRequestHeaders.Add("Accept-Language", "zh-CN,zh;q=0.8");
            //httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
            HttpResponseMessage response = httpClient.PostAsync(new Uri("https://passport.baidu.com/v2/api/?login"), httpContent).Result;

            response.EnsureSuccessStatusCode();
            String result = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode.Equals(HttpStatusCode.OK))
            {
                //var cookies = HttpHelper.GetAllCookies(cookieContainer);
                //return HttpHelper.GetAllCookies(cookieContainer).FirstOrDefault(c => c.Name.Equals("BDUSS")) != null;
                int    i1    = result.IndexOf("err_no=");
                int    i2    = result.IndexOf("&callback=");
                string errno = result.Substring(i1, i2 - i1).Replace("err_no=", "");
                switch (errno)
                {
                case "-1":
                    res = "系统错误,请您稍后再试";
                    break;

                case "2":
                    res = "您输入的帐号不存在";
                    break;

                case "4":
                    res = "您输入的帐号或密码有误 field : password";
                    break;

                case "6":
                    res = "您输入的验证码有误 field : verifyCode";
                    break;

                case "7":
                    res = "密码错误";
                    break;

                case "257":
                    res = "需要填入验证码";
                    break;

                default:
                    res = "errno:" + errno;
                    break;
                }
            }
            //httpClient.Dispose();
            return(res);
        }