C#アプリケーションに問題があり、何か助けていただければ幸いです。3つのロールが許可されているが、許可されていないアカウントを拒否するログインページ
C#でプロジェクトを作成すると、管理者が権限を与えられていないユーザーがログインできないようにしようとしています。
これは私のアカウントコントローラです。私は、管理者がアプリケーションに入り、他の誰かがビューに行くか、エラーメッセージを表示させることから始めたいと思います。
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
WebSecurity.Login(model.UserName, model.Password);
if (User.IsInRole("Administrator"))
{
return RedirectToLocal(returnUrl);
}
else
{
WebSecurity.Logout();
return View("RegisterAuthorisation");
}
}
else
{
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
}
誰もがElseステートメントに置かれているページにアクセスするだけで、機能していないのです。私のデータベースは問題なく、HTMLにコードを実装しているので、Admins以外のユーザーはすべてのものにアクセスできなくなります。
私が言ったように、私はいくつかの助けに非常に感謝します!
ビューを返すElseステートメント( "RegisterAuthorisation"); ModelState.AddModelError – adopilot
@adopilot nahは動作しません –