Files
ChessServer/src/Aiursoft.ChessServer/Middlewares/AllowCrossOriginMiddleware.cs
T
AnduinXue f63a5ecea3 Playable.
2023-11-27 13:00:27 +00:00

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);
}
}
}