예제 #1
0
        private async Task <DMUserManager <Tenant, User, DMUser> .DMLoginResult> GetLoginResultAsync(string usernameOrEmailAddress, string password, string tenancyName)
        {
            var loginResult = await _userManager.LoginAsync(usernameOrEmailAddress, password, tenancyName);

            switch (loginResult.Result)
            {
            case DMLoginResultType.Success:
                return(loginResult);

            default:
                throw _abpLoginResultTypeHelper.CreateExceptionForFailedLoginAttempt(loginResult.Result, usernameOrEmailAddress, tenancyName);
            }
        }
        public async Task Should_Login_With_Correct_Values_Without_MultiTenancy()
        {
            Resolve <IMultiTenancyConfig>().IsEnabled = false;//单租户
            AbpSession.TenantId = 1;

            var loginResult = await _userManager.LoginAsync("user1", "123qwe");

            loginResult.Result.ShouldBe(DMLoginResultType.Success);
            loginResult.User.Name.ShouldBe("User");
            loginResult.Identity.ShouldNotBe(null);

            UsingDbContext(context =>
            {
                context.DMUserLoginAttempts.Count().ShouldBe(1);
                context.DMUserLoginAttempts.FirstOrDefault(a =>
                                                           a.TenantId == AbpSession.TenantId &&
                                                           a.UserId == loginResult.User.Id
                                                           ).ShouldNotBe(null);
            });
        }