在IIS托管的C# Web服务中实现强制访问控制允许来源(CORS),可以通过以下步骤来配置:
CORS(Cross-Origin Resource Sharing,跨源资源共享)是一种机制,它使用额外的HTTP头来告诉浏览器,允许在一个域名的网页上访问另一个域名的资源。
web.config
文件,并添加以下配置:web.config
文件,并添加以下配置:如果你更倾向于在代码中处理CORS,可以在你的控制器或全局配置中添加以下代码:
public class CorsMiddleware
{
private readonly RequestDelegate _next;
public CorsMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
context.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Authorization");
if (context.Request.Method == "OPTIONS")
{
context.Response.StatusCode = StatusCodes.Status204NoContent;
return;
}
await _next(context);
}
}
public static class CorsMiddlewareExtensions
{
public static IApplicationBuilder UseCorsMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<CorsMiddleware>();
}
}
然后在Startup.cs
中启用这个中间件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseCorsMiddleware();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
问题:浏览器仍然报CORS错误。 原因:
解决方法:
通过以上步骤,你应该能够在IIS托管的C# Web服务中成功实现CORS策略。
领取专属 10元无门槛券
手把手带您无忧上云