0

HttpAntiForgeryException이 발생하면 내 양식을 제출할 때 새 토큰을 사용하여 양식을 깨끗한 버전으로 다시 보내고 싶습니다. 첫 번째 장소에서 양식보기를로드 한 원래 컨트롤러 및 작업 및 오류 메시지 표시HttpAntiForgeryException (ValidateAntiForgeryToken)에 대한 호출 컨트롤러 및 작업으로 리디렉션

나는 이것이 좋은 사용자 경험을 할 것이라고 믿지만, 가능한지 또는 보안 문제가 있는지 확실하지 않습니다.

현재로서는 BaseController에서 override void OnException(ExceptionContext filterContext)을 사용하고 있습니다.하지만 어떻게 할 수 있는지, 또는 할 수있는 경우 예외를 넘긴 액션과 컨트롤러를 얻을 수 없습니다. 액션은 httppost 버전이지만 폼보기를로드 한 원래 액션과 동일한 이름을 갖습니다.

filterContext.Exception의 stacktrace에서 가져올 방법이 있습니까?

더 좋은 방법이 있습니까?

아니면 바보 같은 생각입니까? 귀하의 의견 :

이에 대한

많은 감사는 MVC 4 닷넷 4.0 응용 프로그램을위한 것입니다.

protected override void OnException(ExceptionContext filterContext) 
{ 
    if (filterContext.Exception is HttpAntiForgeryException) 
    { 
     this.RedirectToAction(
      filterContext.RouteData.Values["action"].ToString(), 
      filterContext.RouteData.Values); 
     filterContext.ExceptionHandled = true; 
    } 

    base.OnException(filterContext); 
} 

대안이는 handleError 속성을 사용하는 것입니다,하지만 하나는 일반적으로 (주어진보기로 리디렉션 할 수 있다는 :

답변

0

난 당신이 설명하는 다음의 방법으로 예외 처리됩니다 생각 사용자 정의 오류보기). 마지막으로 IExceptionFilter 인터페이스를 구현하여 사용자 지정 HandleError 특성을 만들 수 있습니다.

+0

대단히 감사합니다. 이것은 올바른 컨트롤러와 동작으로 나를 리디렉션하는 것처럼 보이지만 단지 빈 페이지를 보여주고 리디렉션 할 작업에 배치 한 중단 점을 맞추지 않습니다. – tekiegirl

관련 문제