gpt4 book ai didi

c# - 登录到 HTTPS 强制门户

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:03 25 4
gpt4 key购买 nike

实际上,我在我的大学中通过此网址的强制门户连接到网络 https://secure.arubanetworks.com/cgi-bin/login , 前段时间我制作了一个连接到它的程序,它运行完美(C++ 和 libCurl),发送带有所需“查询字符串”(例如用户名和密码)的 HTTP POST,但我认为这是因为还没有 SSL ,一个 X.509 证书,现在似乎可以使用 GET 而不是以前使用的 POST。

在 Firefox 上粘贴带有查询字符串的完整 url 对我来说是完美的,因为它应该,所以我只是试图在一个小的 C# 程序中实现它,但因为我不知道如何处理证书(我假设一定有 smth 与它有关.. :P) 它抛出一个 ProtocolError,现在我想我应该先了解一下它,所以我对实现它的代码感兴趣,但也对它的方式感兴趣作品。 :)

PS:如果有一种方法可以在连接属性(我的操作系统是 Win7)上将帐户或程序 (exe) 设置为回调,那么一旦连接到网络,我就会立即进行身份验证。 :D

在此先感谢您的时间和帮助队友! ;)

        Uri uri = new Uri(url + "?" + postData);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = this.method;
// ToDo: Something doesn't work with the cert auth I guess
req.Proxy = null;
req.Credentials = CredentialCache.DefaultCredentials;
ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, X509Certificate certificate, X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};

try
{
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream responseStream = resp.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseFromServer = reader.ReadToEnd();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
HttpWebResponse response = e.Response as HttpWebResponse;
if (response != null)
{
Console.WriteLine(e.ToString());
}
}
}

最佳答案

试试这个 https GET .作为引用,它与 https POST 相关但比它更简单。 .

如果您需要异步方法,情况会有所不同,但我认为这不是您所需要的。所以,你仍然使用 HttpWebRequest 对象,但是在你到达 .method 之后会有不同——你所需要的只是将你的 uri 填充到请求中,然后抓取响应。我认为您不需要手动处理代理或凭据。

关于c# - 登录到 HTTPS 强制门户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com