我正在使用具有 .net 成员资格的 MVC3。我想根据用户的角色将用户重定向到不同的视图。
我尝试使用 AccountControler 控制器的 LogOn 方法来使用 User.IsInRole(xxx) 但它不起作用。从我在这里看到的: Forms Authentication User.IsInRole() random not working in LogOn
无法在该方法上调用会员用户(因为它没有登录,尚未设置用于登录用户的cookie)
我认为这无关紧要,但以防万一,这是 MVC3 项目中默认提供的 LogOn 方法,也是我尝试修改的方法。
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
我的问题是:在登录时根据用户的角色(我只有几个角色)重定向用户的优雅方法是什么?我看到一些建议说“只需查询会员数据库”,但我认为这不是正确的方法。
有什么建议吗?
谢谢!..
即插即用