1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| public async Task InvokeAsync(HttpContext context, RequestDelegate next) { var desc = GetAuthDescriptor(context); if (desc is null) { await next(context); return; }
if (!context.User.Identity?.IsAuthenticated ?? true) { await WriteError(context, 403, "Forbidden"); return; } var authClaim = GetAuthClaims(context.User, AuthKey); var roleClaim = GetRoleClaims(context.User, RoleKey); var userIdClaim = GetUserIdClaim(context.User);
context.Items[AuthKey] = authClaim; context.Items[RoleKey] = roleClaim;
if (!EvaluateExpression(desc.AuthList)) { await WriteError(context, 403, "Forbidden"); return; } await next(context); }
|