Я использую элемент управления WebBrowser в своем приложении asp.net для создания скриншотов веб-страниц. Я мог генерировать изображения, пока не изменил учетную запись пула приложений. Я предоставил новому пулу приложений все необходимые права, и я могу просматривать свои страницы из IE. Но когда я перемещаюсь к нему через веб-браузер программно, я получаю 401.2. Я установил «Правила отслеживания невыполненных запросов» в своем IIS 7.0 и использовал Fiddler для анализа запросов, и обнаружил, что заголовок аутентификации неверен.
Но в webbrowser.navigate есть перегруженный метод, в котором мы можем передавать пользовательские заголовки http. Как я могу установить это? Я просто хочу использовать встроенную аутентификацию и не хочу указывать имя пользователя / пароль в коде, потому что я могу этого не знать. Но все же я попробовал следующий код без удачи.
System.Uri uri = new Uri(myUrl);
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: passwd");
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n";
myBrowser.Navigate(uri, "", null, authHeader);
Любые идеи, как установить заголовок с другими деталями, такими как useragent тоже?