c# - .NET Core 2 IdentityServer 4 Cors 仅在本地主机上工作
问题描述
正如标题所示,当我将 API 部署到服务器 (IIS 7.5) 时,我收到了 Cors 错误。
我有一个用于隐式流身份验证的 IdentityServer 4 示例的略微修改版本 - https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Quickstarts/3_ImplicitFlowAuthentication/src
一切都按预期在本地运行;我收到一个访问令牌,并且能够调用一个安全的 API 端点。但是,当我将 API 部署到我的 IIS 7.5 服务器(但不是身份服务器或 JS 客户端)时,我收到了典型的 CORS 源问题。
一般设置是
身份服务器: http://localhost:5001
JS 客户端: http://localhost:5003/
API: http://api.on.the.internet(或本地http://localhost:5001)
除了初始样本之外,我的启动几乎没有修改:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = MyHelper.AuthorityUrl; // identity server url
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
services.AddCors(options =>
{
options.AddPolicy("default",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
}
public void Configure(IApplicationBuilder app)
{
app.UseCors("default");
app.UseAuthentication();
app.UseMvc();
}
还有我的控制器——
[EnableCors("default")]
[Route("[controller]")]
[Authorize]
public class UserController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
etc...
}
}
我已经非常详尽地搜索过,似乎没有其他人发布过这个问题。所以我想我会伸出援手,看看是否有人对这个问题有任何高水平的建议或解决方案。还有其他人反对这个问题吗?
非常感谢!
-马克
解决方案
推荐阅读
- extjs - 从其他域加载 Ext.grid.Panel
- node.js - 在多个 React 应用程序之间共享相同的 node_modules 文件夹
- swift - 属性声明了一个不透明的返回类型,但没有用于推断基础类型的初始化表达式
- database - 存储应用程序事件历史或状态的最佳方式是什么
- javascript - 是否有扩展运算符更改值的功能?
- python - 使用 Airflow 将数据从大查询传输到 Amazon S3
- reactjs - React Native:useState 未更新
- css - 如何在反应上创建粘性导航栏(在 div 内)
- javascript - 在 react native 中,调用 React 中的函数
- python - KeyError:“['Row'] 在轴中找不到”