сертификат и отправка данных C#

  • Автор темы fen0men
  • Дата начала
F

fen0men

Гость
#1
Привет! Нужна помощь. Необходимо получить html-код странички, когда соединение защищено(https, SSL, сертификация). Есть страничка для авторизации(ввод логина и пароля), защищенная. Нужно POST'ом отправить логин, пароль, еще кое-какие данные на следующую страничку и получить ее html-код(следующей странички). Повторяю, соединение https. При следующем коде, возвращается html-код такой, как будто логин\пароль неправильные.
Код:
 string login="";
string pass="";
X509Certificate2 cert = findCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "vpn-standard.harris.com");
NetworkCredential myCred = new NetworkCredential(login, pass, "vpn-standard.harris.com");
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://www.vpn-standard.harris.com/"), "Basic", myCred);	
HttpWebResponse result = null;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(lcUrl5);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
req.CookieContainer = cookie_container;
req.Referer = lcUrl1;
req.Accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
req.ClientCertificates.Clear();
req.ClientCertificates.Add(cert);
req.Credentials = myCache;		 
byte[] SomeBytes = null;
string FormParams = @"tz_offset=180&
realm=Standard&
btnSubmit=Sign+In";
SomeBytes = Encoding.GetEncoding("utf-8").GetBytes(FormParams);
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
result = (HttpWebResponse)req.GetResponse();

//Get Response
Stream ReceiveStream = result.GetResponseStream();
StreamReader sr = new StreamReader(ReceiveStream, encode);
string html = sr.ReadToEnd();
result.Close();