【问题标题】:Loading class IWebUI from ADAL library fails从 ADAL 库加载 IWebUI 类失败
【发布时间】:2020-02-23 18:55:43
【问题描述】:

我们在 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"} 

谢谢

【问题讨论】:

    标签: azure-active-directory adal


    【解决方案1】:

    您似乎缺少所需的 ADAL 程序集。如果您使用 Visual Studio 进行开发,我建议您使用 NuGet 来管理库。

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

    下面是我成功获取token的代码:

    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 库时自动安装/引用。

    【讨论】:

    • 感谢您的回复。是的。在出现错误之前,我们已经完成了所有这些步骤。
    • 因为这个库对我来说很好用,你能上传一个示例项目来帮助我们解决这个问题吗?您可以通过OneDrive上传,上传前请删除敏感信息。
    【解决方案2】:

    我不得不删除这个文件:

    不确定它来自哪里。它没有被直接引用。一定是以前版本或参考资料之类的遗物。但删除它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-16
      • 2015-12-27
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2014-07-22
      • 2022-09-25
      相关资源
      最近更新 更多