0

POSTとC#(またはVB)を使用してサイトにログインしようとしています(URLを指定できません。イントラネットのみです)。次のエラーが発生します:

このシステムでは、認証情報を確認するためにHTTPCookieを使用する必要があります。私たちのシステムは、ブラウザがHTTP Cookieを無効にしているか、サポートしていないことを検出しました。このシステムで使用するためにブラウザを正しく設定する方法の詳細については、ブラウザのヘルプページを参照してください。

私は次のコードを使用します:

var cookies = new CookieContainer();
ServicePointManager.Expect100Continue = false;

var request = (HttpWebRequest)WebRequest.Create("http://.......");
request.CookieContainer = cookies;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
    writer.Write("user=XX&pass=XX");
}

using (var responseStream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
    var result = reader.ReadToEnd();
    Console.WriteLine(result);
}

どうすればこれを解決できますか?

4

1 に答える 1

0

どうすればこれを解決できますか?

正当なトラフィックを確認し、コードから再生します。私の推測では、ログイン ページは、ログイン ページに POST する必要がある Cookie および/または非表示のフォーム値を設定します。

そのため、 Fiddlerを起動し、ブラウザでログイン ページを要求し、ログインして、上記の理論を確認し、コードから再構築します。

  1. CookieContainer が添付された GET ログインフォーム
  2. ログインフォームを読み取り、非表示の値を保存します (必要な場合)
  3. 1 の CookieContainer と 2 のフォーム フィールドで POST を実行します。
  4. ???
  5. 利益
于 2013-02-27T11:17:34.297 に答える