Я пытаюсь создать своего рода функцию автоматического входа во внутреннем инструменте ASP.Net MVC C #, которая позволит пользователям поддержки быстро войти в различные системы, которые они поддерживают.
Мне удалось передать все значения, необходимые для заполнения формы входа в систему через Ajax / jQuery, на мой контроллер, а затем в мой класс.Как видно ниже, я могу открывать различные URL-адреса на основе if if, но не заполнять форму входа.
Я изучал httpwebrequests, но не уверен, как мне структурировать, чтобы использовать значения переменных (ниже), чтобы заполнить различные поля формы входа в систему, а затем нажать кнопку.
public AutoLogin(string Environment, string Username, string OrgId, string UserId, string OrgKey)
{
var env = Environment;
var user = Username;
var org = OrgId;
var userid = UserId;
var orgKey = OrgKey;
if (env == "system1")
{
string url = website;
CookieContainer cookieJar = new CookieContainer();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)";
req.Method = "POST";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
req.KeepAlive = true;
req.Headers.Add("Keep-Alive: 300");
req.AllowAutoRedirect = false;
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = cookieJar;
string username = user;
string pw = "password";
string orgUid = orgKey;
StreamWriter sw = new StreamWriter(req.GetRequestStream());
sw.Write("userEmail=" + username + "&userPass=" + pw + "&orgUid=" + orgUid);
sw.Close();
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
//Add cookies to CookieJar (Cookie Container)
foreach (Cookie cookie in response.Cookies)
{
cookieJar.Add(new Cookie(cookie.Name.Trim(), cookie.Value.Trim(), cookie.Path, cookie.Domain));
}
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1255));
string tmp = reader.ReadToEnd();
response.Close();
}
else if (env == "system2")
{
System.Diagnostics.Process.Start(url2);
}
else if (env == "system3")
{
System.Diagnostics.Process.Start(url3);
}
else
{
}
}
Обновление:
Добавлен код httpwebrequet, над которым я работал, но при нажатии на интерфейс кнопки он не перемещается / не открывает веб-страницу..