コード例 #1
0
ファイル: SteamUtils.cs プロジェクト: Richterr/STHelp
 public double GetWalletBalance(SteamUser user)
 {
     throw new System.NotImplementedException();
 }
コード例 #2
0
ファイル: SteamUtils.cs プロジェクト: Richterr/STHelp
        public static bool Login(SteamUser user)
        {
            string markpage = GetRequest(_market, _cookieContainer);
            while (true)
            {
                var rRSA = GetRSA(user.Username);

                if (rRSA == null)
                {
                    return false;
                }

                string finalpass = SteamUtils.EncryptPassword(user.Password, rRSA.Module, rRSA.Exponent);

                string MainReq = string.Format(_loginReq, finalpass, user.Username, _mailCode, guardDesc, capchaId,
                                                                              capchaTxt, mailId, rRSA.TimeStamp);
                string BodyResp = SendPostRequest(MainReq, _dologin, _ref,_cookieContainer);

                //Checking login problem
                if (BodyResp.Contains("message"))
                {
                    var rProcess = JsonConvert.DeserializeObject<RespProcess>(BodyResp);

                    //Checking Incorrect Login
                    if (rProcess.Message.Contains("Incorrect"))
                    {
                        return false;
                    }
                    else
                    {
                        //Login correct, checking message type...

                        _stg.ShowDialog();

                        if ((rProcess.isCaptcha) && (rProcess.Message.Contains("humanity")))
                        {
                            string _imageUrl = _captcha + rProcess.Captcha_Id;
                            WebClient wClient = new WebClient();
                            byte[] imageByte = wClient.DownloadData(_imageUrl);
                            using (MemoryStream ms = new MemoryStream(imageByte, 0, imageByte.Length))
                            {
                                ms.Write(imageByte, 0, imageByte.Length);
                                var resimg = Image.FromStream(ms, true);
                                _stg.CaptchaImage = resimg;
                            }
                        }
                        else
                            if (!rProcess.isEmail)
                        {
                            continue;
                        }

                        //Re-assign main request values
                        if (_stg.DialogResult == DialogResult.OK)
                        {
                            _mailCode = _stg.SteamguardCode;
                            guardDesc = _stg.GuardDesc;
                            capchaId = rProcess.Captcha_Id;
                            capchaTxt = _stg.CaptchaText;
                            mailId = rProcess.Email_Id;
                            _stg.Close();
                        }
                        else
                        {
                            return false;
                        }

                        continue;
                    }

                }
                else
                {
                    //No Messages, Success!
                    var rFinal = JsonConvert.DeserializeObject<RespFinal>(BodyResp);

                    if (rFinal.Success && rFinal.isComplete)
                    {
                        return true;
                    }
                }
            }
        }