EnableCors无需创建控制器实例

时间:2017-01-16 15:05:41

标签: asp.net-web-api cors

我有下一个控制器:

[EnableCors(origins: "*", headers: "*", methods: "*",
     SupportsCredentials = true)]
public class ResourceController {
    public ResourceController (ResourceRepository repository) {
    }
}

将ResourceRepository定义为

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public class ResourceRepository {

}

但是当浏览器发出OPTIONS请求时,事实证明.AttributeBasedPolicyProviderFactory尝试创建ResourceController的实例以查找其属性。因此,instanciation失败,SecurityException“请求主体权限失败。”

是否可以为ASP.NET API配置CORS,以便它不会实现控制器的安装?

1 个答案:

答案 0 :(得分:0)

您可以使用OWIN托管Web API并为OWIN管道启用CORS(请参阅Microsoft.Owin.Cors NuGet包)。您应该在Web API中间件之前注册CORS中间件。因此,当您的CORS中间件首先出现时,它将在请求甚至到达Web API基础结构之前执行。