Linux上的.net核心示例应用程序缺少OpenIdConnectOptions

时间:2018-11-18 14:09:57

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

我正在尝试按照本教程在.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 core,我对此并不陌生,只是试图通过一个实际起作用的演示来推动工作发展:)

2 个答案:

答案 0 :(得分:0)

我还没有在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

答案 1 :(得分:0)

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