管理员重定向到管理站点,用户重定向到用户站点

时间:2012-05-07 08:51:11

标签: c# asp.net-mvc-3

我正在尝试授权如果您是管理员,您将被重定向到管理员网站。如果您是会员,它会将您重定向到会员网站。

这是我在控制器上的代码:

public ActionResult Index(Login model)
    {
        if (ModelState.IsValid)
        {
            if (model.IsUserExist(model.EmailId, model.Password))
            {

                if (Roles.IsUserInRole("Admin"))
                {
                    ViewBag.UserName = model.EmailId; 
                    FormsAuthentication.RedirectFromLoginPage(model.EmailId, false);

                    return RedirectToAction("AdminSite", "Home");
                }
                if (Roles.IsUserInRole("Member"))
                {
                    ViewBag.UserName = model.EmailId; 
                    FormsAuthentication.RedirectFromLoginPage(model.EmailId, false); 
                    return RedirectToAction("MemberSite", "MobileHome"); 
                }
            }
            else
            {
                ModelState.AddModelError("", "Wrong Email or Password!");
            }
        }

        return View(model);
    }

我不知道出了什么问题,但网站只停留在登录页面上。当我以会员或管理员身份登录时,它会刷新。它没有带我到管理站点或成员站点。

1 个答案:

答案 0 :(得分:1)

使用

RedirectFromLoginPage(
    string userName,
    bool createPersistentCookie
) 

方法必须在查询字符串中包含ReturnURL变量名。请参阅specyfication。因此,它无法访问return RedirectToAction("MemberSite", "Home")return RedirectToAction("AdminSite", "Home")。如果您将注释掉该方法,它会将您重定向到给定的操作。