0
ユーザによるログインが成功した後、ページはユーザの役割に従って適切なページにリダイレクトされます。私はいくつかのコードを取得し、ログイン資格情報からユーザの役割を取得して確認することができますが、switch文でif-else文を使用することはできません。返されたswitch文の中のユーザ役割に基づくRedirectToAction()Views()の
私はView()を返すことを望みますが、私は常にHome/Index
ビューにリダイレクトされます。ここに私のコードは次のとおりです。
switch (result)
{
case SignInStatus.Success:
MigrateShoppingCart(model.Email);
//returnURL needs to be decoded
string decodedUrl = "";
if (!string.IsNullOrEmpty(returnUrl))
decodedUrl = Server.UrlDecode(returnUrl);
if (Url.IsLocalUrl(decodedUrl))
{
return Redirect(decodedUrl);
}
string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames = UserManager.GetRoles(id);
if (roleNames.Contains("Admin"))
{
RedirectToAction("Index", "Category");
}
else
{
return RedirectToAction("Index", "Home");
}
return View();
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
エラーメッセージは何ですか? –
ユーザが "Admin"ロールを持っていても、私はいつも 'Home/Index'ビューにリダイレクトされます。 – naz786
もしあなたが前にrolenames値を共有することはできますか? –