0

サイトに「更新」があるときに通知するC#アプリケーションを構築しようとしています。サイト ログイン フォームには 3 つのテキスト ボックスがあり、login.aspx です。

私の質問は、3 つの詳細をサイトに「送信」し、C# で構築したいアプリケーションから接続 (認証) するにはどうすればよいですか? 可能であれば、どうすればよいですか? これについて読むためのガイドや何かを探しましたが、見つかりませんでした。

4

2 に答える 2

0

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

于 2012-11-20T21:31:06.823 に答える
0

まず、C# を使用してフォームを投稿する必要があります

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 を送信して復元するようにしてください。そしてビンゴ!!

これを読むことをお勧めします。

于 2012-11-20T21:51:11.053 に答える