微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EndpointHttpContextExtensions:在 .net5 中找不到 HttpContext 类扩展 (GetEndpoint)

如何解决EndpointHttpContextExtensions:在 .net5 中找不到 HttpContext 类扩展 (GetEndpoint)

我一直在尝试使用扩展方法 GetEndpoint() 如下详述:

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

我的项目最初以 netstandard2.1 为目标,但后来我在以下帖子中了解到此功能适用于以 netcoreapp3.1 为目标的项目。

Can't access httpcontext extension methods in .net standard

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

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

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

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

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

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

编辑:

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

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

here所述。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。