/// <inheritdoc /> protected override Task <AuthenticateResult> HandleAuthenticateAsync() { var authenticatedAttribute = new AuthenticatedAttribute(); try { var user = _authService.Authenticate(Request, authenticatedAttribute); if (user == null) { return(Task.FromResult(AuthenticateResult.Fail("Invalid user"))); } var claims = new[] { new Claim(ClaimTypes.Name, user.Name), new Claim( ClaimTypes.Role, value: user.Policy.IsAdministrator?UserRoles.Administrator: UserRoles.User) }; var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(Task.FromResult(AuthenticateResult.Success(ticket))); } catch (SecurityException ex) { return(Task.FromResult(AuthenticateResult.Fail(ex))); } }
public void AuthorizeAuthenticatedAttribute_AsAuthenticated() { var context = generateContext(); context.HttpContext.Request.Headers["Authorization"] = "auth"; var admin = new AuthenticatedAttribute(); admin.OnActionExecuting(context); }