我正在尝试授权如果您是管理员,您将被重定向到管理员网站。如果您是会员,它会将您重定向到会员网站。
这是我在控制器上的代码:
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);
}
我不知道出了什么问题,但网站只停留在登录页面上。当我以会员或管理员身份登录时,它会刷新。它没有带我到管理站点或成员站点。
答案 0 :(得分:1)
使用
RedirectFromLoginPage(
string userName,
bool createPersistentCookie
)
方法必须在查询字符串中包含ReturnURL变量名。请参阅specyfication。因此,它无法访问return RedirectToAction("MemberSite", "Home")
或return RedirectToAction("AdminSite", "Home")
。如果您将注释掉该方法,它会将您重定向到给定的操作。