【发布时间】:2016-02-13 12:47:16
【问题描述】:
我正在尝试获取授权 Steam 页面的 html 代码,但我无法登录。 我的代码是
public string tryLogin(string EXP, string MOD, string TIME)
{
var rsa = new RSA();
string encryptedPass;
rsa.Exponent = EXP;
rsa.Modulus = MOD;
encryptedPass = rsa.Encrypt(Pass);
string reqString = "username=kasyjack&password=" + encryptedPass + "&emailauth=&kasyjackfriendlyname=&captchagid=&captcha_text=&emailsteamid=&rsatimestamp=" + TIME + "&remember_login=false";
byte[] requestData = Encoding.UTF8.GetBytes(reqString);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://store.steampowered.com/login/dologin/");
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.ContentLength = requestData.Length;
request.Host = "store.steampowered.com";
request.Method = "POST";
request.UserAgent = Http.ChromeUserAgent();
request.CookieContainer = _CookieCont;
using (Stream st = request.GetRequestStream())
st.Write(requestData, 0, requestData.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string RSAR = sr.ReadToEnd();
return RSAR;
}
但响应消息是
{"success":false,"requires_twofactor":false,"clear_password_field":true,"captcha_needed":false,"captcha_gid":-1,"message":"Incorrect login."}
那么有人知道,登录有什么问题吗?需要你的帮助。
【问题讨论】:
-
如果您在正常登录时使用fiddler 捕获html 请求和响应,然后可以将其与您的代码进行比较。
-
谷歌浏览器开发工具 - 用户名:kasyjack
-
Set-Cookie:steamLogin=76561198277236483%7C%7C5F9A9D14514EBD1716AA252D71BEE6A91455EC39;但是如果使用这个而不是登录,同样的响应
-
我假设您首先对 /login 进行了 GET,这也使用了
_CookieCont?而您的 EXP、MOD 和 TIME 参数来自对getrsakey的调用? -
蕾娜是的。公共 CookieContainer _CookieCont = new CookieContainer(); GetSessiondID(); var resp = GetRSAKey(); var 结果 = JsonConvert.DeserializeObject(resp);字符串 publickey_mod = results.publickey_mod;字符串 publickey_exp = results.publickey_exp;字符串时间戳=结果。时间戳; string token_gid = results.token_gid;