从ADAL库加载类IWebUI失败

时间:2016-10-06 04:58:10

标签: azure-active-directory adal

我们在C#应用程序中运行时遇到此错误:

{"Could not load type 'Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.IWebUI' from assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory, Version=3.13.1.846, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.":"Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.IWebUI"} 

感谢

2 个答案:

答案 0 :(得分:0)

您似乎错过了所需的装配ADAL。如果您使用Visual Studio进行开发,我建议您使用NuGet来管理库。

例如,我创建了一个控制台应用程序,它使用ADAL从Azure AD获取令牌。然后我们可以通过右键单击reference-> Manage NuGet Packages安装ADAL并搜索/安装ADAL,如下图所示:

enter image description here

以下是我成功获得令牌的代码:

static void Main(string[] args)
{
    AccquireToken();
    Console.ReadLine();
}

static async void AccquireToken()
{
    string authority = "https://login.microsoftonline.com/common";
    string resource = "https://graph.microsoft.com";
    string clientId = "ce1c938c-001c-4caf-b078-9092103e1d49";
    Uri redirectUri = new Uri("http://localhost");
    AuthenticationContext authContext = new AuthenticationContext(authority);

    var result = await authContext.AcquireTokenAsync(resource, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
    Console.WriteLine(result.AccessToken);
}

在这种情况下, Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.IWebUI 的类型位于 Microsoft.IdentityModel.Clients.ActiveDirectory.Platform 程序集中当我们使用NuGet安装ADAL库时自动安装/引用。

答案 1 :(得分:0)

我必须删除此文件:

enter image description here

不知道它来自哪里。没有直接引用。必须是以前版本或参考文献中的遗物。但是删除它还是可以的。