public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var        username = context.UserName;
            var        password = context.Password;
            tLoginInfo user;

            using (var ctx = new dbContext())
            {
                var encryptor  = new Sha256Encryptor();
                var repository = new UsersRepository(ctx, encryptor);

                user = repository.GetByUsernameAndPassword(username, password);
            }

            if (user == null)
            {
                context.SetError("invalid_credentials", "Invalid user name or password.");
                return;
            }

            var claims = new List <Claim> {
                new Claim(ClaimTypes.Name, username)
            };

            var oauthClaimIdentity   = new ClaimsIdentity(claims, OAuthDefaults.AuthenticationType);
            var cookieClaimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationType);

            var properties = CreateProperties(username);
            var ticket     = new AuthenticationTicket(oauthClaimIdentity, properties);

            context.Validated(ticket);
            context.Request.Context.Authentication.SignIn(cookieClaimsIdentity);
        }
Beispiel #2
0
        public static BaseEncryptor GetEncryptor(Encryptor encryptor)
        {
            BaseEncryptor cryptoProvider = null;

            if (encryptor == Encryptor.Aes)
            {
                if (rijndaelEncryptor == null)
                {
                    rijndaelEncryptor = new RijndaelEncryptor();
                }
                cryptoProvider = rijndaelEncryptor;
            }

            if (encryptor == Encryptor.Des)
            {
                if (dataEncryptor == null)
                {
                    dataEncryptor = new DataEncryptor();
                }
                cryptoProvider = dataEncryptor;
            }

            if (encryptor == Encryptor.Sha256)
            {
                if (hashEncryptor == null)
                {
                    hashEncryptor = new Sha256Encryptor();
                }
                cryptoProvider = hashEncryptor;
            }

            if (encryptor == Encryptor.Md5)
            {
                if (hashEncryptor == null)
                {
                    hashEncryptor = new Sha256Encryptor();
                }
                cryptoProvider = hashEncryptor;
            }

            return(cryptoProvider);
        }