我正在尝试使用最新版本的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' 或其中一个依赖项。系统找不到指定的文件。
答案 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.ActiveDirectory
和Microsoft.IdentityModel.Clients.ActiveDirectory.Platform
的版本都应为3.13.9.1126
。
如果有帮助,请告诉我。