| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Text;
- using System.Web;
- using Common;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Authorization.Policy;
- using Model.Base;
- using Util;
- namespace Filters
- {
- public class RefererMiddleware
- {
- private readonly RequestDelegate _next;
- private readonly ILogger<RefererMiddleware> _log;
- public RefererMiddleware(RequestDelegate next, ILogger<RefererMiddleware> log)
- {
- _next = next;
- _log = log;
- }
- public async Task InvokeAsync(HttpContext context)
- {
- context.Request.EnableBuffering(); // 允许多次读取
- string authResult = AuthMiddleware.Do(context);
- if(authResult != "success")
- {
- context.Response.StatusCode = StatusCodes.Status401Unauthorized;
- await context.Response.WriteAsync(authResult);
- return;
- }
- int decryptResult = DecryptMiddleware.Do(context);
- if(decryptResult == 1)
- {
- await _next(context);
- return;
- }
- if(decryptResult == 2)
- {
- context.Response.StatusCode = StatusCodes.Status400BadRequest;
- await context.Response.WriteAsync("解密异常");
- return;
- }
- await _next(context);
- }
- }
- }
|