Example #1
0
 private Task <IEnumerable <Claim> > GenerateClaims(ApiKeyGenerateClaimsContext context)
 {
     return(Task.FromResult((IEnumerable <Claim>)
                            new[] {
         new Claim(ClaimTypes.Name, context.ApiKey)
     }));
 }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
 }