0

Visual C# を使用して Web サイトにログインしようとしていますが、どこから始めればよいかわかりません。最終的に、ウェブサイトから PDF ファイルをダウンロードしたいのですが、パスワードが制限されているため、ウェブサイトにログインする必要があります。URLは以下です。

https://sso.greatclips.com/authentication/login/login.aspx?ud=1&ApplicationCode=1&ReturnURL=https%3A%2F%2Fwww.salondata.com%2Fv2%2Fwa%2FloginPostBack

それが機能しているかどうかはわかりません。私のオプションは何ですか?コードは何かをしていますか?

これまでの私のコードは次のとおりです。(注: Visual C# アプリで Web を閲覧するのではなく、バックグラウンドで閲覧したい)

    public static Setup setup = new Setup();
    private CookieContainer _jar = new CookieContainer();
    public static string password = setup.Password;
    public static string username = setup.UserName;
    private string _url = "https://sso.greatclips.com/authentication/login/login.aspx";
    private string _userAgent;
    public Salons()
    {
        InitializeComponent();
    }
    private void Salons_Load_1(object sender, EventArgs e)
    {
        string responseData;
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(_url);

        webRequest.CookieContainer = _jar;
        webRequest.Method = "POST";
        webRequest.ContentType = "application/x-www-form-urlencoded";
        webRequest.UserAgent = _userAgent;

        string requestBody = String.Format(
            "client_id={0}&password={1}", username, password);

        using (StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()))
        {

            requestWriter.Write(requestBody);
            lblStatus.Text = "Writing request ...";
            requestWriter.Close();

            using (HttpWebResponse res = (HttpWebResponse)webRequest.GetResponse())
            {
                using (StreamReader responseReader = new StreamReader(res.GetResponseStream()))
                {

                    responseData = responseReader.ReadToEnd();
                    responseReader.Close();
                    lblStatus.Text = "Closing request ...";

                    if (res.StatusCode != HttpStatusCode.OK)
                        throw new WebException("Logon failed", null, WebExceptionStatus.Success, res);
                    else
                        lblStatus.Text = "Successfully logged in!";
                }
            }
        }
    }

編集:

[サインイン] ボタンをクリックしたときのリクエスト:

POST http://sso.greatclips.com/authentication/login/login.aspx?ud=1&ApplicationCode=1&ReturnURL=https%3a%2f%2fwww.salondata.com%2fv2%2fwa%2floginPostBack HTTP/1.1 ホスト: sso.greatclips .com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, / ; q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive X-MicrosoftAjax: Delta=true Cache-Control: no-cache, no-cache コンテンツ-タイプ: application/x-www-form-urlencoded; charset=utf-8 リファラー: http://sso.greatclips.com/authentication/login/login.aspx?ud=1&ApplicationCode=1&ReturnURL=https%3A%2F%2Fwww.salondata.com%2Fv2%2Fwa%2FloginPostBack Content-Length: 1331 Cookie: stayloggedin=399238; ASP.NET_SessionId=g3tf01mqzgcdbhyoagfz1s55; .ADAuthCookie=2496474AAA6C67DC05253300439E06151F94E728769EA71FBFDB0CD832E772DBA6F5B5220EF7A5C7E79ED7B445EB7DF6C39B9A1E276277BDD3DC9DF2756294157D57C1B926F919F3A87BDE0CDBA8F43E0C8989357A24372DEA39B973A53F89F0EDEE1E2D3B391A785B1AB19FB704B420BD95A5C3505765D51FA865565686F3CF0F74AFD2C2E76146AB14F46BC2E4B21189B721C32DF3A6466631D0326ABB0D95087FF9E2 Pragma: no-cache

ctl00%24ScriptManager1=ctl00%24UpdatePanel1%7Cctl00%24cphMain%24loginMain%24LoginButton&_ EVENTTARGET=& _EVENTARGUMENT=&_VIEWSTATE=%2FwEPDwUKMjA3MDY5NDk2Ng9kFgJmD2QWBAIBD2QWBGYPZBYCZg9kFgICAQ8WAh4EVGV4dAUQUmVwb3J0aW5nIENlbnRlcmQCAg9kFgICAQ9kFgICAQ8WAh8ABRpzVGl0bGVCYWNrZ3JvdW5kPScjNUU3MUI2J2QCAw9kFgYCAw8PFgYeCEltYWdlVXJsBRppbWFnZXMvc3BlY3RydW1fYmFubmVyLmpwZx4NQWx0ZXJuYXRlVGV4dAUQUmVwb3J0aW5nIENlbnRlch4HVmlzaWJsZWdkZAIFD2QWAmYPZBYCAgEPDxYEHglCYWNrQ29sb3IJ%2FPz8%2Fx4EXyFTQgIIZBYCAgEPZBYCAgMPZBYCAgEPPCsACgEADxYCHghVc2VyTmFtZQUbc3VkZXNoLnNhcHJhQGdyZWF0Y2xpcHMubmV0ZBYCZg9kFgYCAQ8PFgIfAAUQUmVwb3J0aW5nIENlbnRlcmRkAgUPDxYCHwAFG3N1ZGVzaC5zYXByYUBncmVhdGNsaXBzLm5ldGRkAhkPDxYCHwAFGHdlYm1hc3RlckBncmVhdGNsaXBzLmNvbWRkAgkPDxYCHwAFEUNvcHlyaWdodCDCqSAyMDEyZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFJ2N0bDAwJGNwaE1haW4kbG9naW5NYWluJGNoa1N0YXlMb2dnZWRJbufuwcvYeS4gDjHhavP572TVdscK&_EVENTVALIDATION=%2FwEWCQL%2B5bxcAr2ailYCkqyM%2BQ0CtvDI7gECpJCinAICzoverwUCjqr%2B%2FAoCocjV5gcCybrK0QNROj0%2BEho3liuMeskLfe3LtC8Zog%3D%3D&ctl00%24cphMain%24loginMain%24UserName= *&ctl00%24cphMain%24loginMain%24UserName_TextBoxWatermarkExtender_ClientState=&ctl00%24cphMain%24loginMain%24Password=* &ctl00%24cphMain%24loginMain%24chkStayLoggedIn =on&__ASYNCPOST=true&ctl00%24cphMain%24loginMain%24LoginButton=Sign%20In

4

1 に答える 1

0

あなたを助けることができるいくつかのこと

(a) この URL は SSL なしでも機能します (したがって、正しい証明書のチェックなどを行う必要はありません)。今のところ、URL http://sso.greatclips.com/authenticationでこの作業を試すことができます。 /login/login.aspx?ud=1&ApplicationCode=1&ReturnURL=https%3A%2F%2Fwww.salondata.com%2Fv2%2Fwa%2FloginPostBack (https ではなく http)

(b)ブラウザーと Web サーバー間のトラフィックをログに記録できるフィドラーツールを使用します。[サインイン] ボタンをクリックしたときにブラウザーがサーバーに送信する要求を見て、C# コードで同じ要求を実装してみてください。

于 2012-08-11T18:52:17.890 に答える