public string GetRole(HttpContext context) { Claim claim = ((ClaimsIdentity)context.User.Identity).FindFirst(CookieConstants.ROLE_CALIM_TYPE); if (claim == null && _ctfOptions.CtfChallengeOptions.MissingAuthentication) { IEnumerable <Claim> claims = _cookieService.GetClaims(context); claim = claims .Where(x => x.Type == CookieConstants.ROLE_CALIM_TYPE) .SingleOrDefault(); } return(claim?.Value); }
public virtual bool AuthorizeAdmin(AuthorizationFilterContext context) { bool isCookieValid = _cookieService.ValidateCookie(context.HttpContext); if (!isCookieValid) { return(false); } IEnumerable <Claim> claims = _cookieService.GetClaims(context.HttpContext); if (claims == null) { return(false); } Claim roleCalim = claims .Where(x => x.Type == CookieConstants.ROLE_CALIM_TYPE) .SingleOrDefault(); if (roleCalim == null) { return(false); } if (roleCalim.Value != CookieConstants.ADMIN_ROLE_STRING) { return(false); } GenericPrincipal tmpUser = new GenericPrincipal(new ClaimsIdentity(claims), Array.Empty <string>()); context.HttpContext.User = tmpUser; return(true); }