35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
namespace Aiursoft.ChessServer.Middlewares
|
|
{
|
|
public class AllowCrossOriginMiddleware
|
|
{
|
|
private readonly RequestDelegate _next;
|
|
|
|
public AllowCrossOriginMiddleware(RequestDelegate next)
|
|
{
|
|
_next = next;
|
|
}
|
|
|
|
public async Task Invoke(HttpContext context)
|
|
{
|
|
var origin = context.Request.Headers["Origin"].ToString();
|
|
if (string.IsNullOrEmpty(origin))
|
|
{
|
|
await _next.Invoke(context);
|
|
return;
|
|
}
|
|
|
|
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
|
|
context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
|
|
context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
|
|
context.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization");
|
|
|
|
if (context.Request.Method == "OPTIONS")
|
|
{
|
|
context.Response.StatusCode = 200;
|
|
return;
|
|
}
|
|
|
|
await _next.Invoke(context);
|
|
}
|
|
}
|
|
} |