Exemple #1
0
        /// <inheritdoc />
        public async Task <TUser> CheckCloudPasswordAsync(string password, CancellationToken cancellationToken = default(CancellationToken))
        {
            Guard.That(password, nameof(password)).IsNotNullOrWhiteSpace();

            var passwordBytes = Encoding.UTF8.GetBytes(password);

            var pwd = (TPassword)await RequestSender.SendRequestAsync(new RequestGetPassword(), cancellationToken).ConfigureAwait(false);

            var rv = pwd.CurrentSalt.Concat(passwordBytes).Concat(pwd.CurrentSalt);

            byte[] passwordHash;
            using (var sha = SHA256.Create())
            {
                passwordHash = sha.ComputeHash(rv.ToArray());
            }

            var request = new RequestCheckPassword
            {
                PasswordHash = passwordHash
            };
            var result = (TAuthorization)await RequestSender.SendRequestAsync(request, cancellationToken).ConfigureAwait(false);

            var user = result.User.Is <TUser>();

            await OnUserAuthenticated(user).ConfigureAwait(false);

            return(user);
        }
Exemple #2
0
        public async Task <TUser> MakeAuthWithPasswordAsync(TPassword password, string passwordStr)
        {
            var passwordBytes = Encoding.UTF8.GetBytes(passwordStr);
            var rv            = password.CurrentSalt.Concat(passwordBytes).Concat(password.CurrentSalt);

            byte[] passwordHash;
            using (var sha = SHA256.Create())
            {
                passwordHash = sha.ComputeHash(rv.ToArray());
            }

            var request = new RequestCheckPassword
            {
                PasswordHash = passwordHash
            };
            var result = (TAuthorization)await SenderService.SendRequestAsync(request).ConfigureAwait(false);

            var user = result.User.As <TUser>();

            await OnUserAuthenticated(user).ConfigureAwait(false);

            return(user);
        }