我正在尝试将用户重定向到登录时的相应页面。所以我检查他们是否在某个角色中,然后根据成员身份进行重定向。但是, Roles.IsUserInRole() 似乎不起作用。另外,当我使用 Roles.GetRolesForUser("username") 我得到“System.String[]”。我在 mvc4 中使用默认的 simplemembership。我可以看到在数据库中创建的用户并链接到适当的角色。此外,当我使用 [Authorize Roles..] 时效果很好。这是我的登录名(几乎是添加了我的角色检查和重定向的默认登录名。
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{ //Get list of roles to print
Session["FName"] = Roles.GetRolesForUser(model.UserName);
if(Roles.IsUserInRole(model.UserName,"User")){
return RedirectToAction("Index","UserLanding");
Session["FName"] = "User in User group";
}
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
我希望当用户登录“用户”组时,他们会被重定向到 UserLanding Congroller 索引页面。但是,它们总是被重定向到主页。