最新的ADAL无法生成承载令牌

时间:2017-04-08 02:32:38

标签: c# azure token azure-active-directory adal

我正在尝试使用最新版本的ADAL包(3.13.9)生成带有以下代码的authcontext我得到了异常。但是,我将ADAL版本降级到v2.22.302111727它没有问题。我正在使用Visual Studio 2017. 3.13.9有什么问题?

authContext = new AuthenticationContext(authority, true);
  

发生System.TypeInitializationException HResult = 0x80131534
  Message =类型初始值设定项   ' Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext'   抛出异常。
  Source = Microsoft.IdentityModel.Clients.ActiveDirectory StackTrace:
  在   Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext..ctor(字符串   权限,布尔验证权限)   DestinationProvider.AADToken.d__4.MoveNext()in   D:\ Repo \ MyProjects \ nv \ nv \ DestinationProvider \ AADToken.cs:第32行at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()   在ReplLoop.ReplLoop.d__1.MoveNext()中   D:\ Repo \ MyProjects \ nv \ nv \ nvReplLoop \ ReplLoop.cs:第52行

     

内部异常1:TypeInitializationException:类型初始值设定项   for' Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformPlugin'   抛出异常。

     

内部异常2:AdalException:平台所需的程序集   未找到。确保装配   ' Microsoft.IdentityModel.Clients.ActiveDirectory.Platform,   Version = 3.13.8.999,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'   存在

     

内部异常3:FileNotFoundException:无法加载文件或   汇编' Microsoft.IdentityModel.Clients.ActiveDirectory.Platform,   Version = 3.13.8.999,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'   或其中一个依赖项。系统找不到指定的文件。

2 个答案:

答案 0 :(得分:1)

听起来你可能遇到过这个问题:

https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/511

我正在使用isabekyan's workaround,因为这已经为我解决了这个问题。

他们建议在使用authenticationContext

之前添加对以下代码的调用
  private static void SomeMethodToLinkPlatform()
    {
        var creds = new UserPasswordCredential("testUser", "SomePassword");
    }

答案 1 :(得分:0)

根据错误消息,引用不正确。如果您引用了ADAL的3.13.9版本,则不应尝试加载3.13.8.999 Microsoft.IdentityModel.Clients.ActiveDirectory.Platform版本。

请确保您引用的其他程序集不依赖于此库。然后,您可以使用Nuget将ADAL更新为最新版本(3.13.9.1126)。升级后,Microsoft.IdentityModel.Clients.ActiveDirectoryMicrosoft.IdentityModel.Clients.ActiveDirectory.Platform的版本都应为3.13.9.1126

如果有帮助,请告诉我。