Я успешно использую этот код для другого сайта, но без маркера в данных поста. На этом сайте я получаю страницу входа в качестве ответа.
private void button1_Click(object sender, EventArgs e)
{
var client = new CookieAwareWebClient();
string resp = client.DownloadString("https://www.chess.com/login_check");
string token = Regex.Match(resp, "_token.+?value=\"(.+?)\"").Groups[1].Value;
client.UseDefaultCredentials = true;
client.BaseAddress = @"https://www.chess.com/login/";
var loginData = new NameValueCollection();
loginData.Add("_username", "MYEMAIL");
loginData.Add("_password", "MYPASS");
loginData.Add("login", "");
loginData.Add("_target_path", "https://www.chess.com/");
loginData.Add("_token", token);
var result = client.UploadValues(@"https://www.chess.com/login_check", "POST", loginData);
string response = System.Text.Encoding.UTF8.GetString(result);
}
И это код для веб-клиента.
public class CookieAwareWebClient : WebClient
{
private CookieContainer cookie = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.ProtocolVersion = HttpVersion.Version10;
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = cookie;
}
return request;
}
}