コード例 #1
0
        protected virtual ActionResult Login(LoginInfo loginInfo, Func<string, ActionResult> redirectAction)
        {
            if (!this.ModelState.IsValid)
              {
            return this.View(loginInfo);
              }

              var result = this.accountRepository.Login(loginInfo.Email, loginInfo.Password);
              if (result)
              {
            var redirectUrl = loginInfo.ReturnUrl;
            if (string.IsNullOrEmpty(redirectUrl))
            {
              redirectUrl = this.accountsSettingsService.GetPageLinkOrDefault(Context.Item, Templates.AccountsSettings.Fields.AfterLoginPage, Context.Site.GetRootItem());
            }

            return redirectAction(redirectUrl);
              }

              this.ModelState.AddModelError("invalidCredentials", "Username or password is not valid.");

              return this.View(loginInfo);
        }
コード例 #2
0
 public ActionResult Login(LoginInfo loginInfo)
 {
     return this.Login(loginInfo, redirectUrl => new RedirectResult(redirectUrl));
 }
コード例 #3
0
 public ActionResult LoginDialog(LoginInfo loginInfo)
 {
     return this.Login(loginInfo, redirectUrl => this.Json(new LoginResult
                                                     {
                                                       RedirectUrl = redirectUrl
                                                     }));
 }
コード例 #4
0
 public void LoginShouldReturnViewModelIfModelStateNotValid([Frozen] IAccountRepository repo, LoginInfo info, INotificationService service, IAccountsSettingsService accountSetting)
 {
     var controller = new AccountsController(repo, service, accountSetting, null);
       controller.ModelState.AddModelError("Error", "Error");
       var result = controller.Login(info);
       result.Should().BeOfType<ViewResult>();
 }
コード例 #5
0
 public void ShouldAddErrorToModelStateIfNotLoggedIn([Frozen] IAccountRepository repo, LoginInfo info, INotificationService service, IAccountsSettingsService accountSetting)
 {
     repo.Login(string.Empty, string.Empty).ReturnsForAnyArgs(x => false);
       var controller = new AccountsController(repo, service, accountSetting, null);
       var result = controller.Login(info);
       controller.ModelState.IsValid.Should().BeFalse();
       controller.ModelState.Keys.Should().Contain("invalidCredentials");
 }
コード例 #6
0
        public void LoginShouldRedirectToRootIfReturnUrlNotSet(Database db, [Content] DbItem item, [Frozen] IAccountRepository repo, LoginInfo info, INotificationService service, IAccountsSettingsService accountSetting)
        {
            accountSetting.GetPageLinkOrDefault(Arg.Any<Item>(), Arg.Any<ID>(), Arg.Any<Item>()).Returns("/");
              var fakeSite = new FakeSiteContext(new StringDictionary
              {
            {
              "rootPath", "/sitecore/content"
            },
            {
              "startItem", item.Name
            }
              }) as SiteContext;
              fakeSite.Database = db;
              Language.Current = Language.Invariant;

              using (new SiteContextSwitcher(fakeSite))
              {
            info.ReturnUrl = null;
            var controller = new AccountsController(repo, service, accountSetting, null);
            repo.Login(string.Empty, string.Empty).ReturnsForAnyArgs(x => true);
            var result = controller.Login(info);
            result.Should().BeOfType<RedirectResult>().Which.Url.Should().Be("/");
              }
        }
コード例 #7
0
 public void LoginShouldRedirectToReturnUrlIfLoggedIn([Frozen] IAccountRepository repo, LoginInfo info, INotificationService service, IAccountsSettingsService accountSetting)
 {
     var controller = new AccountsController(repo, service, accountSetting, null);
       repo.Login(string.Empty, string.Empty).ReturnsForAnyArgs(x => true);
       var result = controller.Login(info);
       result.Should().BeOfType<RedirectResult>().Which.Url.Should().Be(info.ReturnUrl);
 }
コード例 #8
0
 public void LoginDialogShouldReturnViewIfNotValid(IAccountRepository repo, [NoAutoProperties] AccountsController controller, LoginInfo info)
 {
     var result = controller.LoginDialog(info);
       result.Should().BeOfType<ViewResult>();
 }
コード例 #9
0
 public void LoginDialogShouldRedirectIfLoggedIn(Database db, [Content] DbItem item, [Frozen] IAccountRepository repo, LoginInfo info, INotificationService service, IAccountsSettingsService accountSetting)
 {
     var controller = new AccountsController(repo, service, accountSetting, null);
       repo.Login(string.Empty, string.Empty).ReturnsForAnyArgs(x => true);
       var result = controller.LoginDialog(info);
       result.Should().BeOfType<JsonResult>();
       ((result as JsonResult).Data as LoginResult).RedirectUrl.Should().BeEquivalentTo(info.ReturnUrl);
 }
コード例 #10
0
        public ActionResult Login(LoginInfo loginInfo)
        {
            if (!this.ModelState.IsValid)
              {
            return this.View(loginInfo);
              }

              var result = this.accountRepository.Login(loginInfo.Email, loginInfo.Password);
              if (result)
              {
            var redirectUrl = loginInfo.ReturnUrl;
            if (string.IsNullOrEmpty(redirectUrl))
            {
              redirectUrl = "/";
            }

            this.Response.Redirect(redirectUrl);
              }
              else
              {
            this.ModelState.AddModelError("invalidCredentials", "Username or password is not valid.");
              }

              return this.View(loginInfo);
        }