2

我一直在尝试使用此处详述的扩展方法 GetEndpoint():

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.endpointhttpcontextextensions.getendpoint?view=aspnetcore-5.0

我的项目最初是针对目标netstandard2.1的,但后来我在下面的帖子中读到此功能适用于以netcoreapp3.1.

无法访问 .net 标准中的 httpcontext 扩展方法

我不想针对 .Net Core 3.1,因为我项目的 Entity Framework Core 端使用了最新版本中提供的功能,针对 .Net Standard 2.1。

所以我尝试以.Net 5 为目标,看看它是否会出现,但它没有。我也尝试过安装该软件包Microsoft.AspNetCore.Http.Abstractions,但无济于事(并指出该软件包的目标是netstandard2.0)。我什至尝试将目标框架更改为netcoreapp3.1但没有奏效。这些扩展方法不存在。

当它们出现在文档中时,我是否遗漏了什么或者为什么这些方法在 .Net 5 中不可用?

如果我无法使用 GetEndpoint() 扩展方法,是否有替代方法?

我的目标是:我想在 an 中使用以下代码段AuthenticationHandler

        var endpoint = Context.GetEndpoint();
        if (endpoint?.Metadata?.GetMetadata<IAllowAnonymous>() != null)
            return AuthenticateResult.NoResult();

编辑:

事实证明,我缺少 .csproj 文件中的框架参考

<FrameworkReference Include="Microsoft.AspNetCore.App" />) 

如此处所述。

但是,我不太了解为我的项目提供了什么,无法彻底回答我的问题,即为什么无法通过普通的 NuGet 包使用此扩展方法?

4

0 回答 0