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 方法不允许
由于不允许的 MIME 类型(“text/html”),ASP Net Core 内部的 Angular 8 被阻止
asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)