asp.net アドレス マッピング - 疑似静的

asp.net アドレス マッピング - 疑似静的

asp.net アドレス マッピングの定義は、ユーザーがアクセスする仮想アドレスにマップされた実際のファイルであり、仮想アドレスは静的ページである可能性があります。 Ruli: http://fuzhou.naoqiu.com/bus のページにアクセスすると、実際には /bus.aspx のページにアクセスしていることになります。

Asp.net アドレス マッピングは、HttpModule 要求原則を通じて機能します。

httpModule の原理は何ですか?

HttpModule コンテナでの HTTP リクエストの送信プロセス中に、HTTP リクエストは特定の瞬間 (ResolveRequestCache イベント) に HttpHandler コンテナに渡されます。このイベントの後、HttpModule コンテナーは HttpHandler のエントリ インスタンスを確立しますが、この時点では HTTP 要求の制御は渡されず、AcquireRequestState イベントと PreRequestHandlerExcute イベントが引き続きトリガーされます。 PreRequestHandlerExcute イベントの後、HttpModule ウィンドウは、実際の HTTP 要求処理を実行するために、一時的に HttpHandler コンテナーに制御を渡します。

ProcessRequest メソッドは、HTTP リクエストを処理するために HttpHandler コンテナ内で実行されます。コンテナ HttpHandler は HTTP 要求全体を処理した後、制御を HttpModule に返し、HttpModule はクライアントに戻るまで、処理された HTTP 要求情報フローをレイヤーごとに転送し続けます。

ブロガーから借りた写真

原理を理解した後、簡単なアドレス マッピングを完成させます。コードは次のとおりです。

まず、アドレス マッピングの基本クラスを完成させます。

///<要約>

/// アドレス書き換え

/// </要約>

パブリック抽象クラス BaseModuleRewriter: IHttpModule

{

/// <要約>

/// 初期化呼び出し

/// </要約>

/// <param name="app"></param>

パブリック仮想void Init(HttpApplicationアプリ) {

app.BeginRequest += 新しい EventHandler(app_BeginRequest);

}

パブリック仮想 void Dispose() { }

/// <要約>

/// リクエスト開始

/// </要約>

/// <param name="送信者"></param>

/// <パラメータ名="e"></パラメータ>

保護された仮想 void app_BeginRequest(オブジェクト送信者、EventArgs e)

{

HttpApplication app = sender を HttpApplication として指定します。

書き換え(アプリ);

}

/// <要約>

/// 抽象操作メソッド

/// </要約>

/// <param name="app"></param>

保護された抽象 void Rewrite(HttpApplication app);

}

基本クラスを継承し、必要なアドレス マッピング操作を完了します。

保護されたオーバーライド void Rewrite(HttpApplication app)

{

HttpContext コンテキスト = app.Context;

HttpRequest リクエスト = app.Request;

文字列部分 = Regex.Match(request.Url.ToString(), @"(?<=http\:\/\/).*").Value.ToLower().Trim('/');

(part.IndexOf("/") == -1の場合)

{

part = Regex.Match(part, @"^\w+").Value;

スイッチ(部品)

{

case "bus": context.RewritePath("/bus.aspx"); break;

「www」の場合:

case "naoqiu": context.RewritePath("/Default.aspx"); break;

デフォルト: context.RewritePath("/Index_City.aspx"); break;

}

}

}

何かが足りないのでしょうか? はい、構成ファイルが足りません。 web.config ファイル内のいくつかの場所を変更する必要があります。コードは次のとおりです。

<!--リクエストルール-->

<httpモジュール>

<add name="BianminModuleRewriter"
タイプ="Bianmin.URLRewriter.ModuleRewriter、Bianmin.URLRewriter" />

</httpモジュール>

<システム.Webサーバー>

<ハンドラ>
<add name="aspnet_isapi" path="*" verb="*" modules="IsapiModule" script Processor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
</ハンドラ>

<デフォルトドキュメント>

<ファイル>

<クリア />

<値を追加="default.aspx" />

</ファイル>

</defaultDocument>

</system.webServer>

注意:framewore 2..0を使用する場合は、\aspnet_isapi.dllファイルパスを変更する必要があります。

ソースコードのダウンロードアドレス: http://download.naoqiu.com ダウンロード

元のタイトル: asp.net アドレス マッピング - 疑似静的

キーワード: 疑似静的、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  ウェブサイトのユーザー利用率を効果的に高める方法

>>:  ウェブサイトタイトルの書き方の詳細説明

推薦する

Nehalemモバイルチップは消費電力が多すぎるためノートパソコンに搭載するのが難しい

海外メディアFudzillaによると、Intelは今年第3四半期に、非常に類似したアーキテクチャを持...

CynosDBは、企業のクラウドへのシームレスな移行をサポートするためにクラウド向けに誕生しました。

[51CTO.com からのオリジナル記事] 歴史を振り返ると、世界経済に大きな転換点があるたびに、...

QingCube Qing3ハイパーコンバージドシステムは、中国のハイパーコンバージド市場でトップ5にランクされており、IDCレポートに連続して掲載されています。

最近、IDCが発表した「中国のソフトウェア定義ストレージおよびハイパーコンバージド市場追跡調査レポー...

プレスリリース完全ガイド - プレスリリースに関する10の質問

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますニュース ...

ウェブマスターは百度百科事典の最適化方法を盲目的に学ぶべきではない

最適化の方法はサイトの種類によって異なります。しかし、著者は、誰もが百度百科事典の最適化方法に夢中に...

タオバオアライアンスに応募して広告単価を上げるコツをシェア

タオバオ連盟の前身はアリババグループ傘下のアリママ連盟で、中国最大の電子商取引広告連盟です。タオバオ...

CN ドメイン名はまだ価値がありますか?

最近のHost Review Networkのドメイン名価格比較ツールからのデータフィードバックから...

複数のWeChatパブリックアカウントのパスワードが盗まれた。当局はまだ反応していない

最近、WeChatパブリックアカウント所有者数名が、自分たちが運営するWeChatパブリックサブスク...

クリエイティブ製品の期間限定販売サイトFab.comが欧州市場で巨額の利益を上げる

クリエイティブな製品のフラッシュセールサイトであるFab.comは、ヨーロッパでの1周年を記念して、...

検索エンジン市場シェアレポート: BingがYahooを上回る

2012年1月のcomScoreのレポートによると、Bingの現在の米国における市場シェアは、201...

パフォーマンスが2倍になります! Cloud Native GatewayはTLSハードウェアアクセラレーションをサポート

ネットワーク環境がますます複雑になるにつれて、従来の HTTP プレーンテキスト伝送プロトコルによっ...

クラウドコンピューティングに関する10のよくある質問

FAQ を参考にしてクラウド コンピューティングの基礎を学び、さまざまな種類のクラウド プラットフォ...

IDC: 2020年のIT支出は減少すると予想されるが、クラウドサービスはトレンドに反して成長する

IDC の最新の予測によると、2020 年の IT 支出は 5.1% 減少する一方で、クラウド サー...

JVM における TLAB の謎を解明

[[413891]]この記事はWeChatの公開アカウント「プログラマーの成長」から転載したもので、...