.netメンバーシップでMVC3を使用しています。役割に応じて、ユーザーを別のビューにリダイレクトしたいと思います。
AccountControlerコントローラーのLogOnメソッドでUser.IsInRole(xxx)を使用しようとしましたが、機能しません。私がここで見たものから: Forms Authentication User.IsInRole()がLogOnでランダムに機能しない
そのメソッドでメンバーシップUserを呼び出すことはできません(ログインしていないため、ユーザーにログインするための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);
}
私の質問は次のとおりです。ログイン時にロール(私には2、3のロールしかありません)に従ってユーザーをリダイレクトするエレガントな方法は何ですか?「会員データベースに問い合わせるだけ」という推奨事項を見ましたが、それが適切な方法ではないと思います。
何かアドバイス?
ありがとう!..
PnP