コード例 #1
0
        protected virtual async Task SaveLoginAttempt(SmdLoginResult <TUser> loginResult, string userNameOrEmailAddress)
        {
            var loginAttempt = new UserLoginAttempt
            {
                UserId = loginResult.User != null ? loginResult.User.Id : (long?)null,
                UserNameOrEmailAddress = userNameOrEmailAddress,

                Result = loginResult.Result,

                BrowserInfo     = ClientInfoProvider.BrowserInfo,
                ClientIpAddress = ClientInfoProvider.ClientIpAddress,
                ClientName      = ClientInfoProvider.ComputerName,
            };

            await UserLoginAttemptRepository.InsertAsync(loginAttempt);
        }
コード例 #2
0
ファイル: SmdSignInManager.cs プロジェクト: wotogit/Smd
        public virtual async Task <SignInResult> SignInOrTwoFactorAsync(SmdLoginResult <TUser> loginResult, bool isPersistent, bool?rememberBrowser = null, string loginProvider = null, bool bypassTwoFactor = false)
        {
            if (loginResult.Result != LoginResultType.成功)
            {
                throw new ArgumentException("loginResult.Result should be success in order to sign in!");
            }

            //using (_unitOfWorkManager.Current.SetTenantId(loginResult.Tenant?.Id))
            //{
            await UserManager.As <SmdUserManager <TRole, TUser> >().InitializeOptionsAsync();

            //if (!bypassTwoFactor && IsTrue(SmdZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled, loginResult.Tenant?.Id))
            //{
            if (await UserManager.GetTwoFactorEnabledAsync(loginResult.User))
            {
                //{
                //    if ((await UserManager.GetValidTwoFactorProvidersAsync(loginResult.User)).Count > 0)
                //    {
                //        if (!await IsTwoFactorClientRememberedAsync(loginResult.User) || rememberBrowser == false)
                //        {
                //            await Context.SignInAsync(
                //                IdentityConstants.TwoFactorUserIdScheme,
                //                StoreTwoFactorInfo(loginResult.User, loginProvider)
                //            );

                //            return SignInResult.TwoFactorRequired;
                //        }
                //    }
                // }
                // }

                if (loginProvider != null)
                {
                    await Context.SignOutAsync(IdentityConstants.ExternalScheme);
                }
            }

            await SignInAsync(loginResult.User, isPersistent, loginProvider);

            return(SignInResult.Success);
            // }
        }