Как позвонить в Dynamics 365 и выдать себя за вызывающего пользователя?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как позвонить в Dynamics 365 и выдать себя за вызывающего пользователя?

Сообщение Anonymous »

У меня есть собственное веб-приложение ASP.NET Core 8.0, из которого я хочу вызвать Dynamics 365 и выдать себя за текущего вошедшего в систему пользователя Windows.
Этот код работает при вызове on- предварительная установка Dynamics v9.1, но при использовании того же кода для вызова Dynamics365 в облаке я получаю «неавторизованный». Я предполагаю, что что-то не работает с облачной версией Dynamics, но я не могу понять, как это исправить, поэтому надеюсь на ваши предложения, ребята.
Сейчас я запускаю код локально для разработки, поэтому выдаю себя за себя и являюсь системным администратором как локально, так и в облаке.
Код (где метод Get() является отправной точкой и вызывается ранее в моем приложение):

Код: Выделить всё

protected virtual async Task Get()
{
var handler = new HttpClientHandler { UseDefaultCredentials = true };

// The guid is a system administrator
return await WindowsIdentity.RunImpersonated(_user.AccessToken, () =>
GetAsync("https://myorganizationname.crm4.dynamics.com/api/data/v9.2/",
"systemusers(E8F2BDBD-540C-EF11-9F89-000D3A4C32E3)", handler));
}

private async Task GetAsync(string baseUrl, string url, H (ttpClientHandler handler)
{
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri(baseUrl);
client.DefaultRequestHeaders.Add("Accept", "application/json");

try
{
var request = new HttpRequestMessage(HttpMethod.Get, url);
var response = await client.SendAsync(request);
var json = await response.Content.ReadAsStringAsync();

if (!response.IsSuccessStatusCode)
{
if (response.GetType() == typeof(HttpResponseMessage))
{
throw new Exception(response.ReasonPhrase); // I always get "Unauthorized" as ReasonPhrase...
}

throw new Exception(json);
}

return json;
}
catch (System.Net.WebException ex)
{
// Just some error handling...
}
}
}
Как уже упоминалось, этот код отлично работает при вызове локального экземпляра Dynamics...
Что я могу сделать, чтобы он успешно вызывал облачный экземпляр?

Подробнее здесь: https://stackoverflow.com/questions/792 ... lling-user
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как позвонить в Dynamics 365 и выдать себя за вызывающего пользователя?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как зарегистрировать вызывающего метода вместо метода, вызывающего Logger
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Google Api: запрещено: у вызывающего абонента нет разрешения. У вызывающего абонента нет разрешения.
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Проблема с загрузкой файла в Dynamics 365 CRM
    Гость » » в форуме C#
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • Зарегистрированный плагин для Dynamics 365, использующий Azure.Storage.Blobs, перестал работать
    Anonymous » » в форуме C#
    0 Ответы
    70 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»