Службы отчетов SSRS Rest API не авторизованы - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь получить список отчетов из SSRS Rest API. Я вижу их, когда перехожу на URL http://someaddress/reports/api/V2.0/reports в chrome

Когда я перехожу туда в браузере, появляется окно ввода и запрашивает имя пользователя и пароль.

Так Я пробовал это:

  var client = new HttpClient(){BaseAddress= new Uri("Http://someaddress/reports/api/V2.0");
  client.DefaultRequestHeaders.Add("Username",@"someuser");
  client.DefaultRequestHeaders.Add("Password",@"some password");
  var response= await _client.GetAsync("reports");

Возвращает 401 несанкционированный.

Может кто-нибудь объяснить, как я могу передать имя пользователя и пароль, чтобы я получил правильный ответ?

1 Ответ

1 голос
/ 20 марта 2020

Если вы используете имя пользователя и пароль, вам нужно использовать NTLM для проверки подлинности запроса. Вы можете достичь этого, используя HttpClientHandler и CredentialCache, например:

 var uri = new Uri("Http://someaddress/reports/api/V2.0");
 var networkCredential = new NetworkCredential(@"someuser", @"some password", "");

 var credentialsCache = new CredentialCache { { uri, "NTLM", networkCredential } };
 var handler = new HttpClientHandler { Credentials = credentialsCache };

 var client = new HttpClient(handler) { BaseAddress = uri };
 var response= await client.GetAsync("reports");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...