2016-08-16 9 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は使用しません。

私の質問は、特定のHttpModuleの前にOwinミドルウェアを何とか強制的に実行させることができますか?このような

サムシング(擬似コード):

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

答えて

0

いいえ、あなたはowinモジュールが登録されている方法を変更することができない限り、runAllManagedModulesForAllRequests=trueを必要とし、すべての要求のために実行するようにそれを教えてあげます。

関連する問題