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();
...

此代码似乎可以正常工作,无论如何我都会得到正确的响应详细信息,但是如果我尝试在我的网络浏览器中访问网页,我仍然会被要求登录。

如何保留连接/身份验证详细信息?饼干?还是我这样做完全错了?

附言。我知道我可以让应用程序执行此操作,但我想自己执行此操作。

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 回答