Beispiel #1
0
        /// <summary>
        /// 密码登录
        /// </summary>
        /// <param name="user">用户</param>
        /// <param name="password">密码</param>
        /// <param name="isPersistent">cookie是否持久保留,设置为false,当关闭浏览器则cookie失效</param>
        /// <param name="lockoutOnFailure">达到登录失败次数是否锁定</param>
        public async Task <SignInResult> PasswordSignInAsync(TUser user, string password, bool isPersistent = false, bool lockoutOnFailure = true)
        {
            var result = await IdentitySignInManager.PasswordSignInAsync(user, password, isPersistent, lockoutOnFailure);

            if (result.Succeeded)
            {
                return(SignInResult.Succeeded);
            }
            if (result.RequiresTwoFactor)
            {
                return(SignInResult.TwoFactor);
            }
            if (result.IsNotAllowed)
            {
                throw new Warning(SecurityResource.UserIsDisabled);
            }
            if (result.IsLockedOut)
            {
                throw new Warning(SecurityResource.LoginFailLock);
            }
            return(SignInResult.Failed);
        }
Beispiel #2
0
        /// <summary>
        /// 密码登录
        /// </summary>
        private async Task <SignInResult> PasswordSignIn(TUser user, string password, bool isPersistent = false, bool lockoutOnFailure = true, string applicationCode = "")
        {
            await AddClaimsToUser(user, applicationCode);

            var signInResult = await IdentitySignInManager.PasswordSignInAsync(user, password, isPersistent, lockoutOnFailure);

            if (signInResult.IsNotAllowed)
            {
                throw new Warning(SecurityResource.UserIsDisabled);
            }
            if (signInResult.IsLockedOut)
            {
                throw new Warning(SecurityResource.LoginFailLock);
            }
            if (signInResult.Succeeded)
            {
                return(new SignInResult(SignInState.Succeeded, user.Id.SafeString()));
            }
            if (signInResult.RequiresTwoFactor)
            {
                return(new SignInResult(SignInState.TwoFactor, user.Id.SafeString()));
            }
            return(new SignInResult(SignInState.Failed, string.Empty));
        }