HTTP POSTをHttpWebRequestで使用するときにフォームリダイレクトを実行する

最初にフォームを介してログイン資格情報を提出していました。ここでは、C#を使用して同じログイン信用をHTTP POST経由で HttpWebRequest を使用してサブミットするという同じ動作を模倣しようとしています。

私たちはデータを正しく送信しており、Webサービスはログインデータをスムーズに受信して認証していることがわかります。

しかし、問題は、ログイン用のフォームを使用しているときに、Webサービスがユーザーを自動的にリダイレクトして成功することです。 HttpWebRequest を使用しているときに、ユーザーとリクエストが2つの異なるセッションに存在しているため、何らかの形でそれを複製することはできません。

How should I perform the redirect behavior on successful authentication when using HttpWebRequest? When we redirect manually, we're treated as if we're not authenticated.

説明のポイントとして、私のリクエストコードは次のようになります:

// var data = some byte[] data

var request = 
    (HttpWebRequest)WebRequest.Create("http://domain.com/login.asp");

request.ContentType = "x-www-form-urlencoded";
request.ContentLength = data.Length;
request.Method = "POST";

using (var stream = request.GetRequestStream()) {
    stream.Write(data, 0, data.Length);
    stream.Close();
}

var response = (HttpWebResponse)request.GetResponse();

私はこれをASP.NET MVC 3プロジェクトとしてレイアウトしていますので、このコードはコントローラの動作に多かれ少なかれ現れます。

1
それはまさにポイントです。私はそれをどうやって行うのか分かりません。 :D HttpWebRequest で返されたクッキーは System.Net.Cookie であり、標準MVCのクッキーは System.Web.HttpCookie 。私はこれがおそらく私を逃している単純なものだと知っていますが、ウェブリクエストクッキーとMVCクッキーをマージする方法を理解できませんでした。穏やかな。 :D
追加された 著者 Richard Neil Ilagan,
認証チケットのCookieをサーバーに送り返していません。それがあなたがログインしていることを知る方法です。
追加された 著者 Andrew Barber,
新しいリクエストの認証リクエストから返されたCookieを(リダイレクトされたURLに)送信していますか?
追加された 著者 Jason,

答えはありません

0