【发布时间】:2020-03-08 23:35:35
【问题描述】:
拥有包含 UI 和 API 的解决方案。
用户界面
是一个 ASP.NET Core MVC 项目,仅包含 HomeController 和 Index 视图,该视图在 VueJS 应用程序中加载。
API
是一个ASP.NET Core Web API,用于使用 Windows 身份验证提供 VueJS 应用程序。
部署
- 当前设置(1 个 IIS 网站)
我们有一个来源 (https://example.com),API 由 https://exampel.com/api 访问
- 新设置(2 个 IIS 网站)
UI 有 2 个来源 (https://app.example.com),API 有 (https://api.example.com)。
对于新设置,我们需要实现 CORS(跨域)以允许其他网站使用 API。但因此我们需要为OPTIONS preflight 请求启用匿名身份验证。
有没有办法防止这种情况发生?
【问题讨论】:
-
@aguafrommars 我做了所有这些,但要使其正常工作,我需要将匿名身份验证设置为 true 以允许来自 CORS 的 OPTIONS 请求。问题是要使其安全,或者是否有其他解决方案可以禁用匿名身份验证但让 CORS 正常工作
-
你的意思是在 IIS 上?还是使用 ASP.Net Core 身份验证和授权中间件?
-
没有办法避免需要允许未经身份验证的 OPTIONS 请求。 CORS 协议需要它。更具体地说,CORS 协议要求浏览器从 CORS 预检 OPTIONS 请求中省略所有凭据。
标签: asp.net-core cors axios