public class AdministratorAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
EFUserRepository repo = new EFUserRepository();
var user = repo.FindUserByUserName(filterContext.HttpContext.User.Identity.Name);
if (user.UserRole.Name == "Administrator")
{
filterContext.Result = new RedirectToRouteResult(//Redirect to the original action they tried to enter?
}
}
else
{
//redirect to the "Home/Index" area.
}
}
}
У меня проблемы с перенаправлением на действие из этого метода OnActionExecuting. Кроме того, как мне перенаправить пользователя к его первоначальному предполагаемому действию, если он полностью авторизован.
Этот атрибут [Administrator]
будет размещен на многих различных контроллерах, поэтому я должен иметь способ перенаправить на соответствующий ActionResult, которого они пытались достичь.