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 메서드 내에서 작업으로 리디렉션하는 중 문제가 발생했습니다. 또한 완전히 승인 된 경우 사용자를 원래 의도 한 동작으로 리디렉션하는 방법은 무엇입니까?ActionFilterAttribute를 구현하는 클래스에서 리디렉션
이 [Administrator]
속성은 많은 다른 컨트롤러에 배치 될 것이므로 도달하려는 적절한 ActionResult로 리디렉션 할 수있는 방법이 있어야합니다.
'Authorize' 속성을 사용할 수 없습니까? '[Authorize (Roles = "Administrator")]'? – Chris
나만의 맞춤 회원제 시스템이 있습니다. –