【发布时间】:2020-11-25 22:28:18
【问题描述】:
我有一个没有使用 CORS 的 ASP.NET Core 3.1 API。据我了解,CORS 是浏览器的东西。由于来自另一个来源的另一个站点的 ajax 调用被阻止到 API 端点(这很棒),我仍然可以通过使用 Postman 或 HttpClient 和 GetAsync() 调用到达相同的端点。
我的问题是,是否也可以阻止对我的 API 的服务器到服务器调用(或 Postman 调用)?还是像 CORS 一样,只允许某些来源?
我的大多数端点都受到不记名 JWT 令牌的保护,但我有一个匿名端点,我只想让我控制(或可以配置)的源访问该匿名 API。
【问题讨论】:
-
不,抱歉。这与 CORS 无关。但是我找到了一种通过使用“TypeFilterAttribute”和“IAuthorizationFilter”创建自己的 Authorize 属性来获得所需内容的方法。可能不适用于所有情况下的每个人,但它帮助我过滤出来源(通过使用“Referer”标题)并在没有匹配时返回 Unauthorized 。似乎适用于各种请求(ajax、Postman、HttpContext.GetAsync 等)
标签: asp.net-core asp.net-core-webapi webapi rest