Azure active directory Azure应用程序代理Cors预授权问题

Azure active directory Azure应用程序代理Cors预授权问题,azure-active-directory,Azure Active Directory,我有从外部域“”访问的MVC应用程序。应用程序中有一些代码使用“Request.URL.Host”为JQuery调用控制器操作方法构造URL。“Request.Url.Host”选择内部域,即“”。因此,我面临飞行前的问题。我在代码中有很多这样的例子。我尝试了翻译URL“应用程序主体”选项,但没有成功。是否有解决此问题的选项?以下是一些可能的解决方案: 选项1:自定义域 使用Azure AD应用程序代理的自定义域功能,以便您可以使用相同的域名,并且不需要更改应用程序或标题。因此,起源将继续保持不

我有从外部域“”访问的MVC应用程序。应用程序中有一些代码使用“Request.URL.Host”为JQuery调用控制器操作方法构造URL。“Request.Url.Host”选择内部域,即“”。因此,我面临飞行前的问题。我在代码中有很多这样的例子。我尝试了翻译URL“应用程序主体”选项,但没有成功。是否有解决此问题的选项?

以下是一些可能的解决方案:

选项1:自定义域 使用Azure AD应用程序代理的自定义域功能,以便您可以使用相同的域名,并且不需要更改应用程序或标题。因此,起源将继续保持不变

选项2:发布父目录 发布两个应用程序的父目录。如果web服务器上只有两个应用程序,那么这种方法尤其有效。您可以发布父目录,而不是单独发布每个应用程序,这将导致相同的源

单独发布的应用程序

而是发布父目录

结果URL如下所示,有效地解决了CORS问题

选项3:更新HTTP头 在Web服务上添加HTTP响应头以匹配源请求。例如,下面是如何为在IIS上运行的网站设置它

这也不需要对代码进行任何更改。您还可以在Fiddler跟踪中验证这一点

发布标题添加 HTTP/1.1200ok 缓存控制:没有缓存 Pragma:没有缓存 内容类型:文本/纯文本;字符集=utf-8 过期:-1 改变:接受编码 服务器:Microsoft IIS/8.5 Microsoft HTTPAPI/2.0 访问控制允许来源: X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 内容长度:17

选项4:应用程序修改 通过添加具有适当值的Access Control Allow Origin标头,修改应用程序以添加对CORS的支持。这样做的方式将取决于您编写应用程序时使用的语言。这是最不推荐的选项,因为它需要更多的努力

参考: