public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            Intimidator intimidator = null;
            string      clientId    = context.HttpContext.Request.Headers[AuthDefinition.CLIENT_ID_HEADER].ToString();

            if (!string.IsNullOrEmpty(clientId))
            {
                var intimidatorRepository = context.HttpContext.RequestServices.GetService <IintimidatorRepository>();

                intimidator = await intimidatorRepository.SelectByClientIdAsync(clientId, null);

                if (intimidator != null)
                {
                    context.RouteData.Values.Add(AuthDefinition.INTIMIDATOR, intimidator);
                }
            }


            if (intimidator == null)
            {
                context.Result = new UnauthorizedResult();
            }
            else
            {
                await next();
            }
        }
示例#2
0
        public async Task <Intimidator> InsertAsync(Intimidator intimidator, string cryptoPwd)
        {
            intimidator.ClientId         = Guid.NewGuid().ToString("N");
            intimidator.ClientSecret     = new PasswordCrypto(intimidator.ClientSecret, cryptoPwd).Encrypt();
            intimidator.StartToScareData = Time.GetSystemNow();

            return(await new IntimidatorData(_context).InsertAsync(intimidator));
        }
示例#3
0
        internal async static Task <int> GetIntimidatorId(ClaimsPrincipal user, IintimidatorRepository intimidatorRepository)
        {
            Intimidator intimidator = await GetIntimidatorAsync(user, intimidatorRepository);


            if (intimidator != null)
            {
                return(intimidator.Id);
            }

            return(0);
        }
示例#4
0
        public async Task <Intimidator> InsertAsync(Intimidator intimidator)
        {
            try
            {
                _context.Intimidators.Add(intimidator);
                int affectedRows = await _context.SaveChangesAsync();

                if (affectedRows > 0)
                {
                    return(intimidator);
                }
            }
            catch (Exception)
            {
            }

            return(null);
        }
示例#5
0
        public async Task <Client> FindClientByIdAsync(string clientId)
        {
            Intimidator intimidator = await _intimidatorRepository.SelectByClientIdAsync(clientId, Environment.GetEnvironmentVariable(AuthHelper.CRYPTO_PASSWORD_VAR_NAME));

            if (intimidator != null)
            {
                return(new Client
                {
                    ClientId = clientId,
                    AllowedGrantTypes = GrantTypes.ClientCredentials,

                    ClientSecrets =
                    {
                        new Secret(intimidator.ClientSecret.Sha256())
                    },
                    AllowedScopes = { "api1" },
                    AccessTokenLifetime = 86400
                });
            }

            return(null);
        }