1

基本的にセキュリティで保護されたサイトからRSSフィードを取得するために作成したasp.net4.0スクリプトがあります(SSOソリューションを使用しています)。スクリプトは正しい資格情報をフォームに送信し、すべてのCookieを収集してから、それらのCookieを使用して再度要求を行います。私が遭遇している問題は、サーバーからリクエストするとエラーが発生することです"The remote certificate is invalid according to the validation procedure."

証明書を扱っている私たちの一人と話した後、彼はこれが私たちが購入した証明書の種類と関係があると言いました。基本的に彼は私に彼の側でできることは何もないと言った。

私の質問は、このエラーが表示されないようにして、スクリプトを機能させるために何ができるかということです。

            CookieContainer cookieJar = new CookieContainer();

            HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create("OURADDRESS");
            wr.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 3.5.30729;)";
            wr.Method = "POST";
            wr.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            wr.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
            wr.KeepAlive = true;
            wr.Headers.Add("Keep-Alive: 300");
            wr.AllowAutoRedirect = false;

            wr.ContentType = "application/x-www-form-urlencoded";

            wr.CookieContainer = cookieJar;

            StreamWriter sw = new StreamWriter(wr.GetRequestStream());
            sw.Write("USER=" + UserName + "&PASSWORD=" + Password);
            sw.Close();

            HttpWebResponse response = (HttpWebResponse)wr.GetResponse();

            foreach (Cookie cookie in response.Cookies)
            {
                cookieJar.Add(new Cookie(cookie.Name.Trim(), cookie.Value.Trim(), cookie.Path, cookie.Domain));
            }

            HttpWebRequest request2 = (HttpWebRequest)HttpWebRequest.Create(RssFeedLink);
            request2.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 3.5.30729;)";
            request2.Method = "GET";
            request2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request2.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
            request2.KeepAlive = true;
            request2.Headers.Add("Keep-Alive: 300");
            request2.CookieContainer = cookieJar;

            request2.ContentType = "text/html";

            HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse();
            StreamReader reader2 = new StreamReader(response2.GetResponseStream());
4

1 に答える 1

0

SO の他の場所で、この質問 ( 「検証手順に従ってリモート証明書が無効です。」Gmail SMTP サーバーを使用) に出くわしました。ただし、ソリューションはここでも機能します。

            ServicePointManager.ServerCertificateValidationCallback = (s, certificate, chain, errs) => true;
于 2013-06-25T16:31:21.930 に答える