2016-01-19 6 views
1

Мы используем лазурное хранилище ключей для нашего лазурного шифрования памяти. This - это учебное пособие, которое я последовал, чтобы заставить его работать.Аутентификация авторизации ключа Windows 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."} 

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

+0

http://stackoverflow.com/questions/20885343/how-to-solve-windows-azure-diagnostic-runtime-error-could-not-create-windowsazu/20910827#20910827. Помогает ли это? – RazvanR

ответ

2

По умолчанию библиотеки ADAL, используя сконфигурированный TraceSource «Microsoft.IdentityModel.Clients.ActiveDirectory» писать трассировку данные: 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>