2

勤務中に、イントラネット上の約 90,000 のファイアウォールを介して認証する必要があり、自宅から VPN を介して認証する必要があります。このプロセスを自動化するのはどれほど簡単だろうかと思っていました。私はc#を使いたいのですが、このようなものを思いつきました(うまくいきません)。

...
System.Net.HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Proxy.Credentials = request.Credentials = new NetworkCredential("someusername", "somepass");
request.PreAuthenticate = true;
request.KeepAlive = true;
request.Timeout = 10 * 1000;
var response = request.GetResponse();
...

このコードは正常に動作しているように見えますが、とにかく正しい応答の詳細を取得できますが、Web ブラウザーで Web ページにアクセスしようとすると、ログオンを求められます。

接続/認証の詳細を保持するにはどうすればよいですか? クッキー?それとも、このように完全に間違っていますか?

ps。アプリでこれを行うことができることは知っていますが、自分でやりたかったのです。

4

1 に答える 1

1

これは、ファイアウォール Web インターフェイスで使用される認証メカニズムによって異なります。
重要なことは、ファイアウォールの Web インターフェイスにログインしてセッションを作成する必要があることです。このセッションは、その後ブラウザで使用できます。セッション キー (POST、GET、Cookie など) を見つけ出し、C# Web 応答からブラウザーに "転送" することを試みることができます。しかし、アレックスがすでにそれが機能するかどうかを示しているように、別のファイアウォールの使用を検討する必要があります;)

このような素敵な Admin-Helper-Tool を取得するには、アプリ内で WebBrowser コントロールを使用し、この「フレーム ブラウザー」を使用してファイアウォール Web アプリに自動ログインします。そのようなものは、ファイアウォール Web インターフェイスでも機能するはずです: http://www.codegain.com/articles/csharp/utilities/automating-facebook-login-using-webbrowser-control-in-csharp.aspx

于 2013-01-08T15:37:07.280 に答える