通过https获取.aspauth cookie

时间:2012-11-19 17:25:13

标签: asp.net authentication cookies https

这在http上效果很好,但在https上不起作用。

private Cookie GetAuthCookie(string user, string pass)
    {
        var http = WebRequest.Create(_baseUrl+"Users/Login") as HttpWebRequest;
        http.AllowAutoRedirect = false;
        http.Method = "POST";
        http.ContentType = "application/x-www-form-urlencoded";
        http.CookieContainer = new CookieContainer();
        var postData = "UserName=" + user + "&Password=" + pass + "&RememberMe=true&RememberMe=false&ReturnUrl=www.google.com";
        byte[] dataBytes = System.Text.Encoding.UTF8.GetBytes(postData);
        http.ContentLength = dataBytes.Length;
        using (var postStream = http.GetRequestStream())
        {
            postStream.Write(dataBytes, 0, dataBytes.Length);
        }
        var httpResponse = http.GetResponse() as HttpWebResponse;
        return httpResponse.Cookies[FormsAuthentication.FormsCookieName];
    }

1 个答案:

答案 0 :(得分:2)

它可能是SSL证书问题,您可以通过WebClient或WebRequest访问SSL,具体取决于您的证书颁发者的情况。请参阅此前question for details,了解如何解决此问题。