IRouteHandlerにWebフォーム:ルーティングの要求を必要とするHttpContext.ユーザー
-
20-09-2019 - |
質問
私は追加しようとしているかの基本路線へAsp.Net Webフォームアプリ(走行下でのIIS7統合モード):のご請求へ http://mydomain.com/foo/ 良野の落合にて設立されました結果、動的なページhttp://mydomain.com/foopage.aspx).
私RouteHandlerるすべてのことだそうですルーティングます。
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var page = System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath("~/foo.aspx", typeof(MyApp.Web.Foo)) as MyApp.Web.Foo;
return page as IHttpHandler;
}
問題は、私のRouteHandlerのGetHttpHandler方法、すべてのインスタンスの、現在のユーザ(requestContext.HttpContext.ユーザーのシステム。ます。HttpContext.ます。ユーザー)がnullになります。しかし残念foo.aspxニーズにどうのこうの、現在のユーザでのログイン制御の役割、など)でレンダリングのページを投げnull参照例外をスローしました。私の推測ではこれらのルートハンドラは焼成前にAsp.Net が、ワイヤーのHttpContextユーザー情報あらゆるアイデアの仕事ではないか。
PS-Iこれを実現できることによってサーバーです。移ページ http://mydomain.com/foo/default.aspx.利用したいルーティングのためにこのようなものではなく気なフォルダclutteringえて仕方ありません。
よろしく!
解決 2
から受けることになってしまい図がこのです。
のように この質問, 私のルートでオンラインのルートの起源終了です。aspx(http://mydomain.com/foo-origin.aspxが失敗した場合もしなかった(http://mydomain.com/foo-origin/).
にMSDN条項の設定ルーティングとwebフォーム ばく変化少ないウェブconfigが出ることを設定する必要がありま runAllManagedModulesForAllRequests trueのモジュールノード:
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</system.webServer>
</configuration>
現在でswimmingly.
他のヒント
<のhref = "https://stackoverflow.com/questions/400236/asp-net-routing-do-custom-routes-completely-skip-everything-in-the-global-asax#への回答を参照してください。 400289" >このの質問、非常によく似ています。