カスタム ルートの値を設定して、強制的に次の場所に移動する必要があります
サイト/管理者/elmah.axd
私のweb.configには次のものがあります:
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
さらに、その他の関連するすべてのエルマ設定。そのセクションを削除すると、次のように入力できます。
サイト/elmah.axd
しかし、私は管理者だけがこのページにアクセスできるようにしたい.
私はあなたがログインする管理ページを持っています。あなたが管理者ロールにいる場合は、elmah.axd にリダイレクトされます。
public AdminController(IRepository<User> userRepository)
{
_userRepository = userRepository;
}
//
// GET: /Admin/
public ActionResult Index()
{
return View(Constants.Admin);
}
public ActionResult AdminLogin(string SSN)
{
var user = _userRepository.FindBy(x => x.UserName == SSN).SingleOrDefault();
if (UserIsAnAdmin(user))
{
return RedirectToRoute("/elmah.axd");
}
return View(Constants.DeniedAccess);
}
Global.asax ファイルにルート値があり、サポートが必要です。
routes.MapRoute(
"mocklogin",
"{controller}/{action}", // URL with parameters
new { controller = "MockLogin", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"elmah.axd",
"{controller}/{action}", // URL with parameters
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
//need something here redirecting to the elmah.axd page
);
ページを自分のサイトの /elmah.axd ページにリダイレクトする方法はありますか?
最後に、自分のサイトの管理者ページに行きたいと思います。ユーザーが管理者の場合は送信をクリックすると、elmah.axd ページにリダイレクトしたいと思います。それ以外の場合は、カスタム エラー ページに移動します。どうにかしてコントローラーの ssn を取得し、条件を呼び出し、true の場合は elmah.axd にリダイレクトする必要があります。MVC で elmah.axd にリダイレクトするにはどうすればよいですか?