正如标题所示,当我将API部署到我的服务器(IIS 7.5)时,我收到了Cors错误。
我有一个针对隐式流认证的IdentityServer 4示例的略微修改版本 - https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Quickstarts/3_ImplicitFlowAuthentication/src
一切按预期在本地运行;我收到一个访问令牌,我可以调用一个安全的API端点。但是,当我将API部署到我的IIS 7.5服务器(但不是Identity Server或JS客户端)时,我收到典型的CORS原因问题。
一般设置是
IdentitServer: 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...
}
}
我搜索得非常详尽,而且似乎没有其他人发布此问题。所以我想我会伸出援手,看看是否有人对此问题有任何高层建议或解决方案。其他人遇到这个问题?
非常感谢!
-Marc