Как и где добавить новое расширение схемы?

В течение нескольких недель я пытался добавить новое расширение схемы для моего приложения MVC на основе Microsoft Graph, по сути, для хранения некоторых основных переменных вместе с почтовым сообщением.

Я подписался на этот пример из GitHub, и после нескольких очень разочаровывающих дней работы над тем, что типы свойств" Boolean "и" Integer "не поддерживаются, я столкнулся с легендой" Недостаточно прав для завершения операции ".. .

Я выдергивал волосы, пытаясь понять, как и где я должен добавить свое новое расширение, в существующем виде я пытаюсь добавить его с помощью приведенного ниже кода в качестве аутентифицированного пользователя (который является администратором):

SchemaExtension extensionPayload = new SchemaExtension()
{
    Description = "my extension example",
    Id = $"myExtensionExample",
    Properties = new List<ExtensionSchemaProperty>()
    {
      new ExtensionSchemaProperty() { Name = "prop1", Type = "String" },
      new ExtensionSchemaProperty() { Name = "prop2", Type = "String" }
    },
    TargetTypes = new List<string>()
    {
      "Message"
    }
};

SchemaExtension test = await client
    .SchemaExtensions
    .Request()
    .AddAsync(extensionPayload);

My Graph Client создается с помощью следующего кода:

public static async Task<GraphServiceClient> GetClient(HttpContextBase context)
{
    string token = await GetAccessToken(context);

    GraphServiceClient client = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            (requestMessage) =>
            {
                requestMessage.Headers.Authorization =
                    new AuthenticationHeaderValue("Bearer", token);

                return Task.FromResult(0);
            }
        )
    );

    return client;
}

И моя конфигурация Oauth запрашивает следующие разрешения:

<add key="ida:AppScopes" value="User.Read Mail.ReadWrite Mail.Send Contacts.ReadWrite Directory.AccessAsUser.All" />

Я проверил разрешения приложения Azure для учетной записи, с которой я тестирую, и все они кажутся правильными? Это то место, где они должны быть ??

ЛЮБЫЕ указатели были бы очень признательны, так как я потерял так много времени, пытаясь запустить и запустить то, что я считал очень простым тестовым приложением.


person Shawno0    schedule 21.03.2019    source источник
comment
Пожалуйста, сделайте отступ в коде правильно, чтобы его было легче читать.   -  person jrswgtr    schedule 21.03.2019
comment
Это лучшее, что я мог получить, копирование из VS не будет правильно форматироваться как код, если отступы будут удалены перед копированием, поскольку я чувствовал, что копирование прямого кода лучше для отладки, чем возможное введение опечаток путем повторного набора.   -  person Shawno0    schedule 21.03.2019
comment
Тогда не набирайте его заново, а удалите пробелы   -  person jrswgtr    schedule 21.03.2019
comment
Получили ли вы согласие администратора для своего идентификатора приложения в этом клиенте?   -  person Marc LaFleur    schedule 21.03.2019
comment
При просмотре Azure AD в приложениях мое приложение показывает, что оно имеет все необходимые разрешения, однако клиентская база Azure AD, которую я использую для тестирования, отличается от той учетной записи, в которой зарегистрировано приложение. Но я не видел документации, в которой говорилось бы, что это будет проблемой?   -  person Shawno0    schedule 22.03.2019


Ответы (1)


Согласно docs, использование этого вызова с разрешениями приложения не поддерживается. Таблица разрешений из документов MS Graph API

person Mark Wickens    schedule 18.06.2019