【发布时间】:2020-08-04 06:31:39
【问题描述】:
上下文
我已经在启动时成功为我的所有路由启用了 CORS它可以正常工作:
services.AddCors(options =>
{
options.AddPolicy("MyAllowPolicy",
builder =>
{
builder.WithOrigins("https://www.sample.hostname.com")
.AllowAnyMethod()
.AllowAnyMethod();
});
});
// ...
app.UseCors("MyAllowPolicy");
问题
我希望尽可能少放松安全性,因此我希望只允许 CORS 仅在 /Pages/MyFolder/MyPage 中的特定页面,并且可以在路由 /MyFolder/MyPage 中访问
如果它是一个 ASP.MVC 核心 Web 应用程序,我会在 Controller 类或 Action 方法上使用[EnableCors("MyAllowPolicy")]。然而,这是一个 ASP.NET Core 3.1 Pages Web 应用程序。
如何仅为 /Pages/MyFolder/MyPage 启用我的 CORS 策略?
到目前为止我所做的尝试:
我到处都只找到这个样本:
app.UseCors(); // void parameter
//...
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/MyFolder/MyPage",
context => context.Response.WriteAsync("hello"))
.RequireCors("MyAllowPolicy");
endpoints.MapControllers()
.RequireCors("MyAllowPolicy");
endpoints.MapRazorPages();
});
但这显然会呈现响应“回声”而不是我的页面内容...
【问题讨论】:
标签: asp.net-core razor cors razor-pages