Вход на сайт через C#

Вы можете немного упростить c# задачу, создав класс, производный c-sharp от WebClient, переопределив c-sharp его метод GetWebRequest и web-client установив для него объект visual-c# CookieContainer. Если вы csharp всегда устанавливаете один webclient и тот же экземпляр CookieContainer, управление web-client файлами cookie будет выполняться .cs-file автоматически.

Но единственный c#-language способ получить HttpWebRequest c#-language до его отправки - это унаследовать webclient от WebClient и переопределить webclient-download этот метод.

public class CookieAwareWebClient : WebClient
{
    private CookieContainer cookie = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).CookieContainer = cookie;
        }
        return request;
    }
}

var client = new CookieAwareWebClient();
client.BaseAddress = @"https://www.site.com/any/base/url/";
var loginData = new NameValueCollection();
loginData.Add("login", "YourLogin");
loginData.Add("password", "YourPassword");
client.UploadValues("login.php", "POST", loginData);

//Now you are logged in and can request pages    
string htmlSource = client.DownloadString("index.php");

c#

httpwebrequest

webclient

2022-09-14T06:05:54+00:00