Я на самом деле подключаюсь в своем унив к сети через невыполненный портал по этому URL https://secure.arubanetworks.com/cgi-bin/login, время назад я создал программу для подключения к нему, которая прекрасно работала (C ++ & libCurl), отправляя HTTP POST с нужна «строка запроса», такая как имя пользователя и пароль, но я думаю, что это потому, что все еще не было SSL, Cert X.509, который теперь, похоже, работает с GET вместо POST, который использовался ранее.
Вставка в Firefox полного URL со строкой запроса работала мне идеально, как и должно быть, поэтому я просто попытался добиться этого в небольшой программе на C #, но так как я не знаю, что делать с сертификатом (я asume должно быть что-то, что с этим делать ..: P) он выдает мне ProtocolError, и теперь я подумал, что сначала я должен немного понять об этом, поэтому мне интересен код для его достижения, а также способ его работает. :)
PS: Также хотелось бы, если есть способ установить учетную запись или программу (exe) в качестве обратного вызова, в свойствах соединения (моя ОС - Win7), чтобы после подключения к сети он сразу проходил аутентификацию. : 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());
}
}
}