Следующая конструкция не работает правильно для меня:
request.Credentials = new NetworkCredential("user", "pass");
Я использовал CredentialCache
вместо:
CredentialCache credentialCache = new CredentialCache
{
{
new Uri($"http://{request.Host}/"), "Basic",
new NetworkCredential("user", "pass")
}
};
request.Credentials = credentialCache;
Однако, если вы хотите добавить несколько базовых учетных данных (например, если существует перенаправление, о котором вы знаете), вы можете использовать следующую функцию, которую я сделал:
private void SetNetworkCredential(Uri uriPrefix, string authType, NetworkCredential credential)
{
if (request.Credentials == null)
{
request.Credentials = new CredentialCache();
}
if (request.Credentials.GetCredential(uriPrefix, authType) == null)
{
(request.Credentials as CredentialCache).Add(uriPrefix, authType, credential);
}
}
Надеюсь, это поможет кому-нибудь в будущем.