private Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) { return(Task.FromResult((IEnumerable <Claim>) new[] { new Claim(ClaimTypes.Name, context.ApiKey) })); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) { using (var db = new ZapContext()) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var submittedKey = context.ApiKey; var keyRoles = await db.APIKeys .Where(k => k.Key == submittedKey) .Select(k => new { k.Roles, k.User.Name, k.User.AppId, }) .FirstOrDefaultAsync().ConfigureAwait(true); var claims = new List <Claim>() { new Claim(ClaimTypes.Name, keyRoles.Name), new Claim(ClaimTypes.NameIdentifier, keyRoles.AppId) }; foreach (var r in keyRoles.Roles.Split(',')) { claims.Add(new Claim(ClaimTypes.Role, r)); } return(claims); } }
/// <summary> /// Implements the interface method by invoking the related delegate method. /// </summary> /// <param name="context"></param> /// <returns></returns> public virtual async Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) { var claims = new Collection <Claim>(); claims.Add(new Claim(ClaimTypes.AuthenticationMethod, context.Options.AuthenticationType)); if (this.OnGenerateClaims != null) { foreach (var claim in await this.OnGenerateClaims(context)) { claims.Add(claim); } } return(claims); }
private async Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) => new[] { new Claim(ClaimTypes.Name, "Fred") };
public async virtual Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext arg) { var claims = new List <Claim>(); return(claims); }
private static Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) => Task.FromResult(new[] { new Claim(ClaimTypes.Name, "Fred") }.AsEnumerable());
public static async Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context) { return(WebApiConfiguration.Instance.Users.Where(u => u.ApiKey == context.ApiKey).First().Identity.Claims); }