Web Api 2、OWIN和Identity Server的CORS配置问题



我在同一域下有几个web应用程序,它们都使用独立的Identity Server 3应用程序进行登录。在测试环境下,每一个都在同一个域下(http://192.168.100.1,或通过dnshttp://companyServer)。

最近,一个应用程序需要从另一个应用请求一些数据,我在Visual Studio上调试时发现了以下错误:

阻止跨来源请求:同源策略不允许读取上的远程资源http://companyServer:60000/MyApp/Api/Company/Info?parameter=123.(原因:CORS标头"Access Control Allow Origin"不存在(。

我们有一个中央库负责在我们的系统上配置Web API,它有以下内容(以及其他内容(:

public static IAppBuilder UseCebiUtilWebApi(this IAppBuilder app, CebiWebApiOptions options)
{
Logger.Debug("Configuring Web API");
app.UseCors(CorsOptions.AllowAll);
...
}

使用相同的方法,我们还配置Identity Server。

我还检查了我的登录服务器应用程序,有以下关于CORS的代码:

public class CompanyCorsPolicyService : DefaultCorsPolicyService
{
public CompanyCorsPolicyService()
{
base.AllowAll = true;
}
}

该方法在项目的Startup.cs.上调用

据我所知,我的环境的每一端都应该能够完全访问CORS,无论其来源如何。但标题仍然不见了。

我在互联网上尝试了很多解决方案:

使用";配置。EnableCors";而不是";应用程序。UseCors";

覆盖GrantResourceOwnerCredentials,

我也尝试过在Web.Config上手动设置一些与CORS相关的标题,但在SO.上找不到具体的问题

我不认为身份服务器与这个问题有关,但由于这是我的环境和我找到的解决方案之间的区别,我决定把它也放在这里。

有什么想法吗?

OPTIONSVerbHandler可能正在拦截所有OPTIONS(CORS飞行前(请求。

请尝试禁用它,以便ASP.Net可以处理这些请求。

相关内容

  • 没有找到相关文章

最新更新