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>