HttpWebRequest SSL授权

时间:2015-10-15 17:30:10

标签: c# asp.net ssl

如何使用SSL登录资源?我在url上发送了帮助HttpWebRequest的数据。在一半的情况下,返回重定向到登录页面,不会得到cookie。

也许,在443端口上发出请求?如果是的话,这怎么用HttpWebRequest来帮助?

        ServicePointManager
            .ServerCertificateValidationCallback +=
            (sender, cert, chain, sslPolicyErrors) => true;

        const string root = @"https://****/";
        var loginUrl = string.Format(@"{0}csologin/login.jsf", root);

        var login = Settings.Default.PacerLogin;
        var pass = Settings.Default.PacerPassword;
        var postData =
            string.Format(
                @"login=login&login:loginName={0}&login:password={1}&login:clientCode=&login:j_idt139=&javax.faces.ViewState=stateless",
                 login, pass);

        var request = (HttpWebRequest)WebRequest.Create(loginUrl);
        request.CookieContainer = this.cookieContainer;

        var ascii = new ASCIIEncoding();
        byte[] postBytes = ascii.GetBytes(postData);

        request.Proxy = null;
        request.Credentials = new NetworkCredential(login, pass);
        request = SetHeaders(request, loginUrl);
        request.ContentLength = postBytes.Length;
        request.Method = WebRequestMethods.Http.Post;

        Stream postStream = request.GetRequestStream();
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Flush();
        postStream.Close();

和标题

        request.UserAgent =
            "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36";

        request.Headers.Add("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6,ru;q=0.4");
        request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        request.Headers.Add("Accept-Encoding", "gzip, deflate");
        request.KeepAlive = true;
        request.Headers["Cache-Control"] = "max-age=0";
        request.AllowAutoRedirect = allowRedirect;
        request.Connection =
        request.Referer = referer;
        request.ContentType = "application/x-www-form-urlencoded";
        request.ServicePoint.Expect100Continue = false;

0 个答案:

没有答案