【问题标题】:Latest ADAL not able to generate bearer token最新的 ADAL 无法生成不记名令牌
【发布时间】:2017-09-03 12:17:52
【问题描述】:

我正在尝试使用最新版本的 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' 抛出异常。
来源=Microsoft.IdentityModel.Clients.ActiveDirectory StackTrace:
在 Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext..ctor(字符串 权限,布尔 validateAuthority)在 DestinationProvider.AADToken.d__4.MoveNext() 在 D:\Repo\MyProjects\nv\nv\DestinationProvider\AADToken.cs:第 32 行 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:类型初始化器 对于“Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformPlugin” 抛出异常。

内部异常 2:AdalException:平台所需的程序集 未找到。确保组装 'Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, 版本=3.13.8.999,文化=中性,PublicKeyToken=31bf3856ad364e35' 存在

内部异常 3:FileNotFoundException:无法加载文件或 程序集'Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, 版本=3.13.8.999,文化=中性,PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。

【问题讨论】:

  • 你现在解决这个问题了吗?如果没有,请不要犹豫,让我知道哪个步骤阻止了您。
  • 实际上没有。我切换到 v2.22.302111727 有效。 3.13.9 和 3.13.8 都给出相同的错误。
  • 问题是由不正确的程序集引用引起的。要缩小问题范围,您可以创建一个新项目并仅安装 3.13.9 版本的 ADAL 并比较程序集的版本,然后添加库一个一个检查哪个库导致这个问题。如果问题仍然存在,您可以在 GitHub 上分享一个代码项目以帮助重现此问题。

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


【解决方案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");
    }

【讨论】:

    【解决方案2】:

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

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

    如果有帮助请告诉我。

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 2015-11-30
      • 1970-01-01
      • 2014-10-08
      • 2020-08-11
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多