在MVC应用程序中启用CORS(部署在azure上)

时间:2016-09-29 12:53:25

标签: asp.net-mvc azure cors azure-active-directory

我知道这个论坛上有很多问题说明了同样的问题陈述。但我想提出我的特定情况,以获得与此相关的指南/建议。 我正在研究一个应该在azure上部署的MVC应用程序(基本上它使用.net sdk和其他软件包处理windows azure)。应用程序运行良好,但在空闲时间50-60分钟后 (即没有刷新),连接丢失。 在调试代码期间(通过Visual Studio 2015社区版),我发现它将流重定向到Sign in()函数(我没有开发该函数,因此我没有通过对此的理解)。在这里,它在url中创建一个标志(用azure AD进行身份验证)并将应用程序重定向到该URL。这是应用程序出错的地方。在浏览器(谷歌浏览器)控制台中,我发现它说明了

  

MLHttpRequest无法加载https://login.windows.net/common/wsfed?wa=wsignin1.0&wtrealm=https%3a%2f%2fdhttps%253a%252f%252flocalhost%253a43778%252f&wct=2016-09-26T19%3a05%3a59Z。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“https://localhost:43778”访问。

我尝试使用几乎所有方法在应用程序中启用CORS,即

  • 使用web.config条目
  • 使用nuget包Microsoft.AspNet.WebApi.Cors版本5.2.2和5.2.3,通过webapiconfig.cs和/或控制器,操作级别全局启用它。

似乎没有任何帮助,我无法在请求和响应中找到与CORS相关的标头。 启用CORS可能会出现什么问题。请指导。 任何帮助将不胜感激。 感谢

修改 实际上应用程序在空闲时表现得像这样,一旦我们刷新页面就可以了。我只是在调查连接丢失的原因以及如何在这么长的空闲时间之后保持应用程序运行。如果除了CORS之外的任何其他东西都可能导致此问题,请指导并建议可能的解决方法。

1 个答案:

答案 0 :(得分:2)

是的,您的应用中没有丢失CORS标头。它在login.windows.net中丢失了。如果您重定向到该页面,它不应该是CORS问题。当您从JavaScript拨打另一个域时,CORS才会发挥作用。检查JS AJAX调用。有人试图调用login.windows.net,而不是重定向。