Моя ситуация:
Я запускаю программу тестирования C #, которая позволяет мне настраивать определенные «шаги» браузера, такие как переход по URL или нажатие кнопки. Также есть возможность ввести домен, имя пользователя и пароль. При запуске программы она вызовет другую программу * с (если введено) именем пользователя и паролем. Эта новая программа будет запускать Internet Explorer (через Watin) и выполнять «шаги».
Проблема здесь в том, что когда я перехожу на URL, который требует определенного пользователя, он выдаст мне «Вы не авторизованы для просмотра этой страницы». Когда я вручную (Internet Explorer - Run As) авторизируюсь с одним и тем же пользователем (и я проверил учетные данные более одного раза), это даст мне авторизацию.
Что-то, что я уже проверил: при запуске страницы localhost (на которой будет отображаться текущий пользователь) я получаю авторизацию как вручную, так и автоматически через программу. Ох и: программа работает нормально, когда я не настраиваю учетные данные (она пропустит оператор if)
Код, который я использую для запуска второй программы:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
if (!string.IsNullOrEmpty(Username))
{
System.Security.SecureString secPw = new System.Security.SecureString();
foreach (char c in Password)
{
secPw.AppendChar(c);
}
psi.UserName = Username;
psi.Password = secPw;
psi.Domain = Domain;
}
psi.WorkingDirectory = "c:\\temp";
psi.FileName = Path.Combine("c:\\temp", fileName);
psi.Arguments = xmlStepFilename;
psi.UseShellExecute = false;
psi.EnvironmentVariables["TMP"] = "c:\\temp";
var process = new System.Diagnostics.Process();
process.StartInfo = psi;
process.Start();
Спасибо за ваше время!
(* Новая программа была реализована, поскольку Internet Explorer всегда запускался под пользователем, с которого было запущено первоначальное приложение, и было невозможно запустить Internet Explorer с другим именем пользователя / паролем, потому что Watin не поддерживал это. ..Но это не является частью проблемы)