在ASP.NET Core中使用CORS预检请求进行Windows身份验证时,可以按照以下步骤进行解决:
Startup.cs
文件的ConfigureServices
方法中添加CORS服务配置:public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowAllOrigins",
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
// 其他服务配置...
}
Configure
方法中使用CORS中间件和身份验证中间件:public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseCors("AllowAllOrigins");
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
[EnableCors("AllowAllOrigins")]
public class YourController : ControllerBase
{
// Controller的代码...
}
这样配置后,ASP.NET Core应用程序将允许来自任何来源的请求,并且在进行CORS预检请求时能够进行Windows身份验证。