ログイン時にユーザーを適切なページにリダイレクトしようとしています。そこで、彼らが役割を果たしているかどうかを確認し、メンバーシップに基づいてリダイレクトします。ただし、Roles.IsUserInRole()は機能していないようです。さらに、Roles.GetRolesForUser( "username")を使用すると、"System.String[]"が表示されます。私はmvc4のデフォルトのsimplemembershipを使用しています。データベースに作成され、適切なロールにリンクされているユーザーを確認できます。また、[役割の承認..]を使用すると正常に機能します。これが私のログインです(私の役割チェックとリダイレクトが追加されたほとんどのデフォルトのログインです。
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);
}
ユーザーが「user」グループにログインすると、UserLandingCongrollerIndexページにリダイレクトされると思います。ただし、常にホームページにリダイレクトされます。