使用Thinktecture.IdentityModel在WebAPI,MVC和IIS中支持CORS

时间:2013-01-09 23:12:30

标签: asp.net-web-api

我正在尝试使用Thinktecture.IdentityModel实现CORS,如下面的链接所示:

http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis-with-thinktecture-identitymodel/

我尝试了Web API方法但它没有用。所以我走向了IIS路线。

<system.webServer>
  <modules runAllManagedModulesForAllRequests=“true“>
    <add name=“MvcCorsHttpModule“
         type=“Thinktecture.IdentityModel.Http.Cors.Mvc.MvcCorsHttpModule“/>
  </modules>
</system.webServer>

然后再次在global.asax中配置设置:

protected void Application_Start()
{
    …
    RegisterCors(MvcCorsConfiguration.Configuration);
}

private void RegisterCors(MvcCorsConfiguration corsConfig)
{
    corsConfig
        .ForResources(“Products.GetProducts”)
        .ForOrigins(“http://foo.com&#8221;)
        .AllowAll();
}

现在,它可以在我的本地主机(Windows 8,VS 2012)中运行,但是当我将它推送到prod(IIS 6)时,它不起作用。是否有其他设置使其在IIS 6中工作?为什么它会在localhost中工作,而不是在我将其推向生产时。

1 个答案:

答案 0 :(得分:0)

您的问题与this相反。

模块在IIS6到IIS7 +中的注册方式不同。

<configuration>
    <system.web>
      <httpModules>
        <add name="MvcCorsHttpModule" type="Thinktecture.IdentityModel.Http.Cors.Mvc.MvcCorsHttpModule"/>
      </httpModules>
    </system.web>
</configuration>