내 작업 여기 : "Web.Config"의 특정 키를 기반으로 특정 "Controller/Action"특정 URL을 제거하고 싶습니다. 사용자 지정 필터를 만들려고했습니다. 속성,하지만 난이 "OnActionExecuting이 무한 루프 원인"또 다른 문제를 발견하고, 실제로 나는이 솔루션 "ASP.NET MVC 3 OnActionExecuting causes infinite loop"으로 확신했다,하지만, 난 여전히 해결책을 찾을 수 없습니다사용자 지정 특성 | | Web.Config의 특정 URL에 대한 특정 URL 액세스 방지
의 Web.config :.
을<add key="Delegation" value="true" />
나의 컨트롤러 : 로그인 사용자의 승인 여부를 확인한 다음이 사용자가이 컨트롤러에 적합한 지 확인하십시오.
[MyAuthorize("EdgeEngineGroups")]
[Edge.Models.FilterAttribute]
내 Filteration 클래스 : 키가 "거짓 false"잘 때
public class FilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string Delegation = "";
Delegation = System.Configuration.ConfigurationManager.AppSettings["Delegation"].ToString();
if (string.IsNullOrEmpty(Delegation) != null)
{
if(Delegation.ToLower() == "true")
{
var controllerName = filterContext.RouteData.Values["controller"];
var actionName = filterContext.RouteData.Values["action"];
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary{{ "controller", controllerName },
{ "action", actionName }
});
}
else
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary{{ "controller", "AccessDenied" },
{ "action", "NotFound" }
});
}
}
else
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary{{ "controller", "AccessDenied" },
{ "action", "NotFound" }
});
}
base.OnActionExecuting(filterContext);
}
}
그것은이 찾을 수없는 페이지로 리디렉션, 작동하지만 키에 해당하는 경우, 그것은로 리디렉션 내 컨트롤러가 있지만 매번 필터 속성을 찾습니다.
이 오류를 해결할 방법이 있는지 알고 싶거나 기본 작업에 대한 다른 해결책을 알고 싶습니다.