問題タブ [iroutehandler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET MVC に IRouteHandler.GetHttpHandler() から IHttpAsyncHandler を認識させる方法は?
このQ & Aで、ASP.NET MVC を非同期処理に対応させる方法を 1 つ見つけました。しかし、私はそれを機能させることはできません。
基本的には、メソッドGetHttpHandlerを 1 つだけ持つ IRouteHandler の新しい実装を作成するという考え方です。GetHttpHandlerメソッドは、Begin/EndXXXX パターン API を持っているため、単に ではなく実装を返す必要がありますIHttpAsyncHandler
。IHttpHandler
IHttpAsyncHandler
次に、ファイル Global.asax.cs の RegisterRoutes メソッドで、このクラスAsyncMvcRouteHandlerを登録します。
ProcessRequest、BeginProcessRequest、EndProcessRequestにブレークポイントを設定しました。ProcessRequestのみが実行されます。つまり、AsyncMvcHandlerはIHttpAsyncHandlerを実装していますが。ASP.NET MVC はそれを認識せず、単に実装として処理します。IHttpHandler
ASP.NET MVCでAsyncMvcHandlerをIHttpAsyncHandlerとして扱うようにして、非同期ページ処理を行うにはどうすればよいですか?
c# - Web フォームの IRouteHandler: HttpContext.User を必要とするルーティング要求
Asp.Net Web フォーム アプリ (IIS 7、統合モードで実行) にかなり基本的なルートを追加しようとしています: http://mydomain.com/foo/に来るリクエストの結果を表示したいと思います動的ページ ( http://mydomain.com/foopage.aspx )。
これをすべて行う RouteHandler を作成しましたが、正しくルーティングされているようです。
問題は、RouteHandler の GetHttpHandler メソッド内で、現在のユーザー (requestContext.HttpContext.User、System.Web.HttpContext.Current.User) のすべてのインスタンスが null であることです。悲しいことに、foo.aspx は現在のユーザーが何であるか (ログイン コントロール、ロールなど) を知る必要があるため、ページをレンダリングすると null 参照例外がスローされます。私の推測では、これらのルート ハンドラーは、Asp.Net がユーザー情報で HttpContext を接続する機会を得る前に起動していると思います。回避策のアイデアはありますか?
PS - これは、 http://mydomain.com/foo/default.aspxのページで Server.Transfer を実行することで実現できることを認識しています。役に立たないフォルダーがたくさんあるのではなく、この種のルーティングを使用したいと思います。
ありがとう!
asp.net-mvc - ASP.NET MVC 2.0 + IRouteHandler の実装が起動しない
public IHttpHandler GetHttpHandler(RequestContext requestContext) が実行されていない理由がわからないので、誰か助けてください。私の Global.asax.cs には
//CustomRouteHandler の実装は以下
ここで私が欠けているものを誰か教えてくれませんか。単純に public IHttpHandler GetHttpHandler(RequestContext requestContext) は起動しません。
web.configでも何も変更していません。ここで何が欠けていますか?助けてください。
asp.net - Asp.netルーティングを使用したIRouteHandler.GetHttpHandlerでセッションがnullです
IRouteHandler クラスの GettHttpHandler メソッドでセッションを有効にしようとしていますが、セッションは常に null です。誰かが私が間違っていることを教えてもらえますか?
global.asax には
Session が null の MyRouteHandler クラスは次のようになります。
問題を示す小さなテストアプリを作成しました。
誰かが私が間違っていることを教えてもらえますか?
追加するために編集:
はい、ルート ハンドラにセッション データが必要です。多くの理由がありますが、簡単に説明できる理由の 1 つは、ユーザーがプレビュー モードでサイトを閲覧するように切り替えることができる場合です。
このサイトは、データベース内の動的ページ (/page1/page2...) の階層で構成されており、通常は公開またはプレビューできます。サイトを閲覧するコンテンツ プロデューサーは、通常のページだけを表示するか、プレビュー用に公開されたページも表示するかを選択できます。ブラウジング モードはユーザーのセッションに保存されるため、ルート ハンドラは要求されたページを解決できるようにブラウジング モードを知る必要があります。
だから私は本当にその段階ですでにセッションが必要です.
asp.net-mvc - ASP.NET MVC でのイメージの保護 (カスタム RouteHandler を使用)
保護したい画像用のカスタム RouteHandler を作成しました。私の RouteHandler は単純に新しいルート (graphics/{filename}) を取得し、実際のファイル パスを検索して、MIME タイプを設定し、それを提供します。それはうまくいきます。( http://www.mikesdotnetting.com/Article/126/ASP.NET-MVC-Prevent-Image-Leeching-with-a-Custom-RouteHandler )
次にやりたかったことは、以前に設定したセッション変数のカスタム ハンドラー内でチェックを行い、画像を表示しようとしている人にその許可があることを確認することでした。
基本的に、彼らはログインを渡す (コードを入力する) ことで、カスタム RouteHandler で検索するセッション変数を設定します。
私の問題は、カスタム RouteHandler 内からセッション データを取得できないように見えることです。
最後に、私の質問は次のとおりです。コントローラーにデータを設定し、その後のリクエストでカスタム RouteHandler 内からデータを利用できるようにするにはどうすればよいですか?
asp.net-mvc-2 - カスタムIRouteHandlerルートはMVCリンク構築を台無しにします
ASP.NET MVC2にカスタムルートハンドラーがあり、次のようなプレフィックス付きパスですべてのURLをキャッチします。
ルーティングは正常に機能しますが、Html.Actionlinkを使用するか、コントローラーからReturnToAction()を返すと、構築されたURIは次のような壊れたURIを作成します。
それ以外の
デフォルトルートパターンを考慮するために、URI構築ロジックにどのように影響を与えることができますか?
asp.net - コードを介して特定のディレクトリから静的ファイルのみを提供する
HttpHandler
でを指定するのではなく、ASP.NETルーティングを使用して、指定したディレクトリから静的ファイルのみを提供するコードベースのソリューションを探していますWeb.config
。
例えば:
私は次の部分的なディレクトリレイアウトを持っています
/public
ディレクトリからファイルが要求された場合は、そのまま提供する必要があります。たとえば、他の静的ファイルが要求された場合は、として/readme.txt
提供する必要があり404
ます。静的ファイルを提供できるディレクトリは、文字列(var publicDir = "public";
)として簡単に指定する必要があります。
私は、Web.config
ファイルで構成をほとんどまたはまったく必要とせずにこれを実行しようとしています。そのほとんどはコードで構成されています。
c# - カスタム ASP.NET コールバック ベースのルーティング。動的 ASPX ページのインスタンス化とレンダリング
私は小さな学校のプロジェクト、ASP.NET C# Web サイトに取り組んでいます。Global.asax
ファイルを使用して要求ロジックを集中化する Web アプリケーションを使用しています。
いずれにせよ、同僚と私はグループのコーディングを担当しており、どちらも経験豊富な PHP 開発者として参加しています。私たちはどちらも、PHP フレームワークLaravelで使用されるアーキテクチャ スタイルでの作業を楽しんでおり、ルート (に関連付けられたコールバック) を「コントローラー」として使用しており、(四角いペグであり、丸い穴の問題であるにもかかわらず) この機能を複製しようとしています。事業。
これは簡単な作業ではありません。この機能の複製を開始する試みIRouteHandler
として、インターフェイスを実装しました。CallbackRouteHandler
残念ながら、これは私が得た限りです。ASP.NET Page Life Cycle Overviewを読んで、プロセス全体をよりよく理解しようとしています。
私たちが行き詰まっているのは、特定のルート コールバックのスコープ内でASPX ファイルをプログラムで読み込むことです (むしろ、Page
オブジェクトとしてインスタンス化します)。コールバックの範囲内で、次のような、かなり簡単な方法を実現できることを期待していました。
両方を理解するのに苦労しています:1)これを行う方法は?2)いつ (前述のページのライフサイクルに関連して) これを行うか。
この種の機能を実現するにはどうすればよいでしょうか? ASP.NET によって隠されているこのプロセスは一見非常に複雑に見えますが、確かに他の人は以前にこの道をたどっていました。
c# - MVC カスタムルーターハンドラーからユーザーを別の URL にリダイレクトする方法は?
私は CustomMvcRouterHandler を使用しています。いくつかのロジックに基づいて、ユーザーを CustomHandler から別の Url にリダイレクトしたいだけです。
ユーザーを CustomRouterHandler から "Home/CompanyProfile" にリダイレクトする方法は?
vb.net - MVC カスタム RouteHandler がファイルに対して起動しない
カスタム ルート ハンドラにルートを登録する次のコードがあります。
これにより、コンパイル済みの DLL に埋め込まれたリソースにアクセスできます。たとえば、次のようになります。
MVC 3 および 4 では、ProcessRequest 関数は毎回起動しますが、MVC 5 からは起動しません。ディレクトリを指定した場合にのみ起動します。ディレクトリではなくファイルを探しているため、明らかにヌル参照例外が発生します ( 、明らかに、ファイルのように . によって)
.css と .js を除外して、カスタム ルート ハンドラが起動するかどうかを試してみましたが、何もありません。MVC 4 プロジェクトでこれをテストすると、完全に機能します。
私の髪を引き裂き始めます。
MVC 5 では RouteHandler が起動しないのに、MVC 4 および 3 では起動する理由はありますか?
(これは MEF を使用した Pluggable MVC プロジェクトであり、アップグレード パスがうまく機能しなかったため、MVC 5 に 1 つずつ導入しました)