TortoiseGit: Как я могу увидеть список коммитов, которые собираются нажать

Да, как сказал Андерс, User.Identity и User.IsInRole не будут работать внутри одного и того же действия входа. Итак, вам нужно перенаправить на новое действие, поэтому внутри действия входа добавить:

вернуть RedirectToAction («MyNewLoginRoute», new {returnUrl = returnUrl});

ниже - это код Пример:

        var result =  SignInManager.PasswordSignIn(model.Email, model.Password, model.RememberMe, shouldLockout: false);

        switch (result)
        {
            case SignInStatus.Success:

// below is the new line modification
      return RedirectToAction("LoginRoute", new {returnUrl=returnUrl });

И теперь добавьте новое действие LoginRoute, как показано ниже:

 // below method is new to get the UserId and Role
 public ActionResult LoginRoute(string returnUrl)  //this method is new
    {
        if (String.IsNullOrWhiteSpace(returnUrl))
        {
            if (User.IsInRole("Admin"))
            {
                return RedirectToLocal("/Admin");
            }
            else if (User.IsInRole("Partner"))
            {
                return RedirectToLocal("/Partner/Index/");
            }
            else if (User.IsInRole("EndUser"))
            {
                ApplicationDbContext db = new ApplicationDbContext();

            // know the partner
                int partnerID = db.Users.Where(x => x.UserName == User.Identity.Name).FirstOrDefault().PartnersTBLID;
                return RedirectToLocal("/Partner/List/" + partnerID.ToString());
            }

        }
        else
        {
            return RedirectToLocal(returnUrl);
        }
    }

Надеюсь, это может кому-то помочь.

30
задан farjam 29 August 2012 в 15:20
поделиться