2016-08-16 5 views
1

Im MVC 5 응용 프로그램에서 Imageresizer 4을 사용하고 있습니다.Owin의 Imageresizer 인증

protected void Application_Start() { ImageResizer.Configuration.Config.Current.Pipeline.AuthorizeAllImages = true; ImageResizer.Configuration.Config.Current.Pipeline.AuthorizeImage += AuthorizeImage; }

AuthorizeImage 방법은 다음과 같습니다 :

private static void AuthorizeImage(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e) { //This line throws an exception if runAllManagedModulesForAllRequests is set to false var owinContext = context.GetOwinContext(); Authorize(context, owinContext); }

문제는 우리가 Owin을 사용하고 있는지 우리가 다음과 같은 이벤트를 사용하는, 그래서 우리는 이미지 요청을 인증 할 필요가있다 그래서 우리는 HttpContext로부터 OwinContext가 필요합니다. GetOwinContext 방법을 호출 할 때 우리는 다음과 같은 오류가 발생합니다 : 내가 Web.config의에서 true로 runAllManagedModulesForAllRequests을 설정하면

없음 owin.Environment 항목은 컨텍스트

에서 발견 된 모든 그것이해야처럼 작동합니다.

그러나 성능에 영향을 미치기 때문에 runAllManagedModulesForAllRequests를 사용하고 싶지 않습니다.

내 질문은 : 어떻게 든 Owin middleware가 특정 HttpModule 전에 실행되도록 강제 할 수 있습니까? 이 (사이비 코드) 같은

뭔가 :

<modules runAllManagedModulesForAllRequests="false"> <add name="ImageResizingModule" type="ImageResizer.InterceptModule" modulesToRunBefore="Owin........" /> </modules>

답변

0

아니, 당신은 당신이 owin 모듈을 등록하는 방법을 변경하지 않는 한, runAllManagedModulesForAllRequests=true을해야하고, 모든 요청을 실행하는 말씀 드리죠 .

관련 문제