Аутентификация объявления хранилища ключей Windows Azure завершается сбоем для некоторых проектов

Мы используем хранилище ключей Azure для шифрования больших двоичных объектов в хранилище Azure. Это руководство. Я последовал за тем, чтобы заставить это работать.

Я разработал пример приложения и библиотеку-оболочку для шифрования больших двоичных объектов. Все это работало хорошо в примере приложения. Но в реальном программном обеспечении после ссылки на проект-оболочку, когда приложение запрашивает токен, возникает исключение,

    private async Task<string> GetToken(string authority, string resource, string scope)
    {
        var authContext = new AuthenticationContext(authority);

        ClientCredential clientCred = new ClientCredential(ADClientID, ADClientSecret);
        AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);

        if (result == null)
            throw new InvalidOperationException("Failed to obtain the JWT token");

        return result.AccessToken;
    }

В приведенном выше коде в строке

        var authContext = new AuthenticationContext(authority);

Исключение, которое он возвращает,

InnerException = {"Couldn't find type for class Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35."}

Что я делаю неправильно?


person Kamal Rathnayake    schedule 19.01.2016    source источник
comment
stackoverflow.com/questions/20885343/ . Это помогает?   -  person RazvanR    schedule 19.01.2016


Ответы (1)


По умолчанию библиотека ADAL использует настроенный TraceSource "Microsoft.IdentityModel.Clients.ActiveDirectory" для записи данных трассировки: src/ADAL.NET/AdalTrace.cs" rel="nofollow">https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/51ddc653029a7b3949eb738afbec40dfb30ed6bb/src/ADAL.NET/AdalTrace.cs< /а>

См. https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/51ddc653029a7b3949eb738afbec40dfb30ed6bb/README.md для получения дополнительной информации о настройке трассировки.

Мои предположения, что ваш web.config имеет прослушиватель трассировки, указывающий на устаревший Microsoft.WindowsAzure.Diagnostics. В зависимости от установленной версии Azure .NET SDK используйте соответствующую версию (последняя версия — 2.8.0.0). Вы также можете использовать перенаправления привязки сборки, чтобы принудительно загрузить определенную версию.

<dependentAssembly>
  <assemblyIdentity name="Microsoft.WindowsAzure.Diagnostics" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="0.0.0.0-2.8.0.0" newVersion="2.8.0.0" />
</dependentAssembly> 
person George Trifonov    schedule 20.01.2016