[Authorize]
当一个或[Authorize(Roles="Administrator")]
属性将用户重定向到登录页面时,有没有办法显示特定于操作的授权消息?
理想情况下,
[Authorize(Roles="Administrator", Message="I'm sorry Dave. I'm afraid I can't let you do that.")]
public ActionResult SomeAdminFunction()
{
// do admin stuff
return View();
}
据我了解,属性并不意味着添加功能,但这似乎纯粹是信息性的。可以在动作中执行此操作,但与使用属性相比,这似乎不太优雅。
或者,
if (!Request.IsAuthenticated)
{
if (!User.IsInRole("Administrator"))
SetMessage("You need to be an administrator to destroy worlds."); // write message to session stack
return RedirectToAction("SignIn", "Account");
}
是否有现有的方法可以做到这一点,或者我是否需要覆盖 [Authorize] 属性?