サイトに「更新」があるときに通知するC#アプリケーションを構築しようとしています。サイト ログイン フォームには 3 つのテキスト ボックスがあり、login.aspx です。
私の質問は、3 つの詳細をサイトに「送信」し、C# で構築したいアプリケーションから接続 (認証) するにはどうすればよいですか? 可能であれば、どうすればよいですか? これについて読むためのガイドや何かを探しましたが、見つかりませんでした。
サイトに「更新」があるときに通知するC#アプリケーションを構築しようとしています。サイト ログイン フォームには 3 つのテキスト ボックスがあり、login.aspx です。
私の質問は、3 つの詳細をサイトに「送信」し、C# で構築したいアプリケーションから接続 (認証) するにはどうすればよいですか? 可能であれば、どうすればよいですか? これについて読むためのガイドや何かを探しましたが、見つかりませんでした。
WebClient
クラスを使用する必要があります。このクラスの詳細については、http://msdn.microsoft.com/en-us/library/system.net.webclient (v=vs.80).aspx を参照してください。
http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.80).aspx?cs-save-lang=1&cs-lang=csharp#code-の良い例スニペット-4
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Console.WriteLine ("Content length is {0}", response.ContentLength);
Console.WriteLine ("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream ();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);
Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd ());
response.Close ();
readStream.Close ();
次に、今後のリクエストのために aspnet_session_id をクライアントに保存するために必要な Cookie の保存を試みます。
private class CookieAwareWebClient : WebClient
{
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = this.CookieContainer;
}
return request;
}
}
各要求で aspnet_session_id を送信して復元するようにしてください。そしてビンゴ!!
これを読むことをお勧めします。