如何实施“;访问控制允许起源”;asp.net中的头

本文关键字:asp net 起源 何实施 访问控制 许起源 | 更新日期: 2023-09-27 18:00:34

是否可以在asp.net 中实现"Access Control Allow Origin"标头

如何实施“;访问控制允许起源”;asp.net中的头

来自enable-cors.org:

ASP.NET上的CORS

如果您没有配置IIS的权限,您仍然可以通过ASP.NET将以下行添加到源页面来添加标头:

Response.AppendHeader("Access-Control-Allow-Origin", "*");

另请参阅:配置IIS6/IIS7

另一个选项是直接将其添加到web.config中:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://www.yourSite.com" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
      </customHeaders>
    </httpProtocol>

我在这里找到了这个

1.Install-PackageMicrosoft.AspNet.WebApi.Cors

2。在WebApiConfig.cs中添加此代码。

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services
    // Web API routes
    config.EnableCors();
    config.MapHttpAttributeRoutes();
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

3.添加此

using System.Web.Http.Cors; 

4.在Api控制器(HomeController.cs)中添加此代码

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class HomeController : ApiController
{
    [HttpGet]
    [Route("api/Home/test")]
    public string test()
    {
       return "";
    }
}

您需要一个HTTP模块来查看请求的资源,如果它是css或js,它会在Access Control Allow Origin标头上添加请求者URL,除非您希望它用"*"完全打开。

在服务器上配置CORS响应头并不是一个真正的选项。您应该在客户端配置一个代理。

示例到Angular-因此,我创建了一个proxy.conf.json文件作为代理服务器。下面是我的proxy.conf.json文件:

{
  "/api": {
    "target": "http://localhost:49389",
    "secure": true,
    "pathRewrite": {
      "^/api": "/api"
    },
    "changeOrigin": true
  }
}

将文件放在package.json的同一目录中,然后我修改了package.jsn文件中的启动命令,如下所示

"start": "ng serve --proxy-config proxy.conf.json"

现在,来自应用程序组件的http调用如下:

return this.http.get('/api/customers').map((res: Response) => res.json());

最后要运行,请使用npm-startng-serve-proxy-config-proxy.conf.json