Попытка загрузить файл.csv из зарегистрированной веб-учетной записи, которая использует проверку подлинности Windows
using (var client = new WebClient())
{
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("abcd","abcd1234");
string downloadlink_INC="https://completeurl.com/";
client.DownloadFile(downloadlink_INC, "downladed.csv");
}
Попытка загрузить файл.csv из зарегистрированной веб-учетной записи, которая использует проверку подлинности Windows. Но здесь я привел сетевые учетные данные по умолчанию, чтобы позволить тем пользователям, которые не имеют доступа к веб-сайту. Ссылка, которую я передаю, загружает файл.csv из браузера в папку загрузки, но когда то же самое ( https://completeurl.com/) используется через код C#, содержимое представляет собой HTML-код, а не столбцы.
Через C# файл представляет собой не что иное, как HTML-код страницы.
Заранее спасибо!!
1 ответ
См. Ответ на аналогичный вопрос: учетные данные домена для класса WebClient не работают
Используя упомянутый ответ, следующий код работал для меня при попытке получить доступ к ресурсу за веб-сайтом, защищенным аутентификацией Windows:
using (var client = new WebClient())
{
string username = "";
string password = "";
string domain = "";
string downloadlink_INC = "https://completeurl.com/";
client.UseDefaultCredentials = false;
CredentialCache cc = new CredentialCache();
cc.Add(
new Uri("https://completeurl.com/"),
"NTLM",
new NetworkCredential(username, password, domain));
client.Credentials = cc;
client.DownloadFile(downloadlink_INC, "downladed.csv");
}
Однако я бы не рекомендовал вам сохранять учетные данные для входа в Windows в исходном коде и распространять двоичный файл, поскольку двоичный файл может быть подвергнут обратному проектированию и раскрытию ваших учетных данных.