2009-03-18 3 views
1

서비스를 인스턴스화하고 Application_PreRequestHandlerExecute() 메서드 내에서 현재 사용자를 인증하고이 서비스를 global.asax.cs의 * Application_PostRequestHandlerExecute() 메서드로 처리하려고합니다. 수업. 이 프로세스에 필요한 항목 중 하나는 URL 경로 시작 부분에 추가 된 orgname입니다. 이 "{orgName}/{controller}/{action}/{id}"와 같은 경로를 매핑했습니다.ASP.Net MVC 라우팅 및 PreRequestHandler

그래서 내 질문은 ASP.Net MVC 응용 프로그램 내에서 Application_PreRequestHandlerExecute() 이벤트 내에서 정보를 라우팅 (또는 어떻게 든 내 "orgname"에 액세스) 하시겠습니까? 이것이 가능하지 않으면 MvcHandler에 연결하여 비슷한 작업을 수행하는 다른 방법이 있습니다 (사용자 정의 필터를 작성해야할까요?)

답변

1

모든 경로 값을 찾으려면 "RequestContext"가 필요합니다. 컨트롤러 내부보다 다른 방법을 모릅니다.

"ActionFilterAttribute"를 구현 한 다음 컨트롤러에 컨트롤러를 장식해야합니다.

ActionFilter는 재미 물건의 모든 종류를 할 수있는 방법

//  Called after the action method executes. 
public virtual void OnActionExecuted(ActionExecutedContext filterContext); 
//  Called before the action method executes. 
public virtual void OnActionExecuting(ActionExecutingContext filterContext); 

있습니다.