ASP.NET.Core允许在设置RequireAuthenticatedUser()时匿名访问OData $ metadata

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET.Core允许在设置RequireAuthenticatedUser()时匿名访问OData $ metadata相关的知识,希望对你有一定的参考价值。

我有一个[[ASP.NET Core 2.1站点,在WebApiConfig文件中具有以下内容:

services.AddMvc(config => // Force authorization for all controllers var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); config.Filters.Add(new AuthorizeFilter(policy)); )
这会强制所有调用者在调用任何控制器之前进行身份验证。不幸的是,这也迫使用户认证访问OData“ $ metadata” URL。

是否有允许匿名访问元数据页面的方法?

注:这是与下面相同的问题(但对于.NET Core)

ASP.NET allow anonymous access to OData $metadata when site has global AuthorizeAttribute

答案
jpgrassi提供的解决方案(joonasw.net/view/apply-authz-by-default。)对我有用。名称为“ Metadata”的控制器将在后台自动生成。这样就可以为每个控制器(包括$ metadata)设置首选的身份验证策略。

以上是关于ASP.NET.Core允许在设置RequireAuthenticatedUser()时匿名访问OData $ metadata的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 2.2 WebAPI 405 方法不允许

ASP.NET Core学习——7

由于不允许的 MIME 类型(“text/html”),ASP Net Core 内部的 Angular 8 被阻止

asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)

Asp.Net Core 允许 CORS 中的 IP 范围

ASP.NET CORE 中不允许主域的 CORS 问题