【问题标题】:OpenIdConnectOptions Missing from .net core sample application on linuxLinux 上的 .net 核心示例应用程序缺少 OpenIdConnectOptions
【发布时间】:2018-11-18 14:09:57
【问题描述】:

我正在尝试按照本教程在 .NET 核心 Web 应用程序中进行 Azure AD 身份验证:

https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/aspnetcore2-2

我得到这个错误:

找不到类型或命名空间名称“OpenIdConnectOptions”(您是否缺少 using 指令或程序集引用?)

我使用的是 Linux,并且在获取基本模板来生成和构建时没有问题,问题似乎出现在教程说添加这一行的地方:

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.Authority = options.Authority + "/v2.0/";
    options.TokenValidationParameters.ValidateIssuer = false;
});

我尝试添加包(半随机)例如:

Microsoft.IdentityModel.Protocols.OpenIdConnect
Microsoft.Owin.Security.OpenIdConnect

无济于事,因为错误仍然存​​在,我遇到了新问题,例如:

错误:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETCoreApp,Version=v2.1”恢复包“Microsoft.Owin 4.0.0”。此软件包可能与您的项目不完全兼容。

我不确定我是否缺少一些关于身份验证和在 linux 上运行 .net 核心的基础知识,我对此并不陌生,只是想通过一个实际做某事的工作演示来让球滚动:)

【问题讨论】:

    标签: linux asp.net-core azure-active-directory asp.net-core-2.0


    【解决方案1】:

    我还没有检查过 linux,但是您缺少的 nuget 包应该是由 ASP.NET Core 从以下项目生成的:https://github.com/aspnet/AADIntegration。您是否尝试更新 ASP.NET Core 的最新 nuget 包?

    作为一种解决方法,您可能希望查看示例的以下分支(其中仍然包含现在移至 ASP.NET Core AADIntegration 的代码):https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master

    【讨论】:

    • 在尝试遵循您的建议时,我选择遵循克隆 git repo 选项而不是运行向导来创建项目,这似乎是一个配置而不是我的代码问题,但我不明白其中的区别。然后我有几天没有时间深入挖掘,当我回头看时,教程已经更新并且现在可以工作了(除了一些很容易用谷歌找到的缺失信息)。非常感谢您的帮助!
    • 您能告诉我们缺少什么吗?也不要犹豫,看看这个样本的 PR。我们目前正在努力。
    【解决方案2】:

    遇到了同样的问题。安装these模块后,编译成功。

    【讨论】:

    • 请以文本形式将所有解释添加到您的答案中,而不是链接到图像
    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 2021-12-05
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多