首页 > 解决方案 > 将 Asp.net 核心控制器限制为特定域名

问题描述

我在 asp.net 核心版本 2 中有一个 Web API 控制器。
此控制器必须接收来自一个域的请求,例如 test.com
test.com 的 IP 总是更改,因此我不能将此控制器限制为 IP。
我可以用什么方法?
只有一个控制器和另一个允许任何来源。
控制器是这样的:

    [HttpPost]
    public IActionResult CBack([RequiredFromQuery]string id,
                               [FromBody] Newtonsoft.Json.Linq.JObject Cypher)

标签: c#asp.net-core

解决方案


您可以使用作用域跨域请求 (CORS)

[EnableCors("YourPolicy")]
[HttpPost]
public IActionResult CBack([RequiredFromQuery]string id,
                           [FromBody] Newtonsoft.Json.Linq.JObject Cypher)

这允许您为每个控制器或操作启用跨域请求。

不要忘记在Startup.cs文件中添加CORS 服务。您还必须先注册自定义策略。

// ConfigureServices
services.AddCors(options =>
{
    options.AddPolicy("YourPolicy",
        builder => builder.WithOrigins("http://example.com"));
});

推荐阅读