【发布时间】:2014-03-19 16:03:44
【问题描述】:
我正在使用 WebApi,就像我从 http://t.co/mt9wIL8gLA 学到的一样
如果我确切地知道客户请求的完美来源 URI,一切都会很好。 太糟糕了,我正在编写一个企业范围的 API,所以我的请求,说 http://apps.contoso.com/myApp/api/foobar
可能来自我域中的所有应用,例如:
http://apps.contoso.com/CRMApp
http://www.contoso.com/LegacyApp
http://test.contoso.com/newApps/WowApp ... 以及我的企业构建的所有新应用。
解决此问题的最佳方法是什么?使用Origins="*" 很俗气,将来源添加到我的 WS 源并重新部署很俗气。
我当前的解决方案是编写一个自定义 CorsPolicyAttribute,例如 http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#cors-policy-providers
并从 web.config 中的 appsettings 读取允许的来源。 更好的一点是,在自定义属性中,检查请求 Origin: 标头是否来自 contoso.com,可能带有正则表达式,并将其添加到允许的来源。
我想知道是否有更好、更标准的方法。
【问题讨论】:
标签: asp.net cors asp.net-web-api