Я пытаюсь извлечь данные из имени входа, чтобы иметь возможность проверить, успешно ли выполнен вход в систему.
Как использовать запрос HttpWebRequest для извлечения содержимого страницы, чтобы я мог использовать его для проверкилогин в порядке.
Поскольку каждый логин возвращает код состояния 200, если логин правильный и неправильный, это затрудняет проверку успешного входа в систему.
private int[] LoginCheck(string TargetWebApp)
{
int[] result = new int[2];
var watch = System.Diagnostics.Stopwatch.StartNew();
try
{
string formUrl = "https://someweb/user/login/default";
string formParams = string.Format("email={0}&password={1}&submit=Login", "someuser@somedomain.com", "somepassword");
string cookieHeader;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(formUrl);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;
using (Stream os = req.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
var elapsedMs = watch.ElapsedMilliseconds;
watch.Stop();
var isInvalidAccess = resp.StatusCode == HttpStatusCode.Unauthorized;
Console.WriteLine("Login to something succeed in {0} Milliseconds", elapsedMs);
cookieHeader = resp.Headers["Set-cookie"];
result[0] = 1;
result[1] = (int)elapsedMs;
}
catch (Exception e)
{
//Any exception will return false.
Console.WriteLine(e.Message);
result[0] = 0;
result[1] = 0;
}
return result;
}