private void TestNotificationSubscriptionDeletion(int?tenantId)
        {
            var notificationName = "Test";
            var user             = CreateTestUser(tenantId);

            UsingDbContext(
                context =>
            {
                var userAccount = context.UserAccounts.First(u => u.UserName == user.UserName);
                userAccount.IsDeleted.ShouldBe(false);
            });

            _notificationSubscriptionManager.Subscribe(new UserIdentifier(user.TenantId, user.Id), notificationName);

            var subscriptions = _notificationSubscriptionManager.GetSubscriptions(notificationName);

            subscriptions.Count.ShouldBe(1);
            subscriptions[0].UserId.ShouldBe(user.Id);

            _userAppService.DeleteUser(user.Id);

            UsingDbContext(
                context =>
            {
                var userAccount = context.UserAccounts.First(u => u.UserName == user.UserName);
                userAccount.IsDeleted.ShouldBe(true);
            });

            subscriptions = _notificationSubscriptionManager.GetSubscriptions(notificationName);
            subscriptions.Count.ShouldBe(0);
        }
Exemplo n.º 2
0
        public ActionResult Login(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                var loginResult = _customerService.ValidateCustomer(model.LoginName, model.Password);
                switch (loginResult.Result)
                {
                case LoginResults.Successful:
                {
                    var customerDto = loginResult.Customer.MapTo <CustomerDto>();
                    //生成ClaimsIdentity
                    var identity = _loginManager.CreateUserIdentity(customerDto);

                    //用户登录
                    AuthenticationManager.SignIn(new AuthenticationProperties {
                            IsPersistent = model.RememberMe
                        }, identity);
                    _notificationSubscriptionManager.Subscribe(new Abp.UserIdentifier(null, (long)customerDto.Id), "notice");

                    return(RedirectToAction("Index", "Dashboard"));
                }

                case LoginResults.Deleted:
                    ModelState.AddModelError("", "该用户已经被冻结");
                    break;

                case LoginResults.NotRegistered:
                    ModelState.AddModelError("", "该用户未注册");
                    break;

                case LoginResults.Unauthorized:
                    ModelState.AddModelError("", "该用户未授权");
                    break;

                case LoginResults.WrongPassword:
                default:
                    ModelState.AddModelError("", "密码错误");
                    break;
                }
            }
            return(View(model));
        }