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 アドレス マッピング - 疑似静的

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

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

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

推薦する

Dogyun: レイバーデー VPS が 50% オフ、香港、日本、韓国、米国、ドイツ、オランダ、ロシア、CN2、CU2 などのハイエンド ネットワーク

Dogyun は労働者の日のために特別なイベントを開催しました。ラッキーホイールでは、毎日コード、ト...

インターネット起業における両者の相互作用について

最近、Tianya の投稿をフォローしています。約 2,000 ページの長さですが、まだ終わっていま...

蒼井そらは、典型的な感傷的な商品である下着を販売しています

突然、Weiboにニュースが載りました:蒼井そらが下着を販売しています!驚きました、本当に驚きました...

推奨: speedykvm-$6/kvm/windows/1g メモリ/500g ハードディスク/2.5T トラフィック/ダラス

改めて speedykvm を強くお勧めします! 2017 年に設立された VPS マーチャントであ...

ウェブランクSEO

WebRank SEO は、Google ブラウザ用の越境電子商取引プラグインです。 Alexa ラ...

Omdia Transaction Watch: ITベンダーがマネージドクラウドサービスに集結

市場調査会社Omdiaの新しいレポートによると、ITベンダーはかつて企業にクラウド技術を提供し、統合...

CKA 認定の合格率を向上: Kubernetes Ingress 7 層プロキシの完全ガイド!

1. Ingress の紹介Ingress は、外部リクエストをクラスター内のサービスに送信する K...

クラウドコンピューティングとは何ですか?今知っておくべきことすべて

クラウド コンピューティングは、コンピューティング、ストレージ、ネットワーク インフラストラクチャを...

SEOウェブサイト最適化:ウェブサイト外部リンクの総合的な構築

この記事は、外部リンクの総合的な構築を探求することを目的としています。フォームを作成して共有しました...

エッジコンピューティングと5Gでスマートシティを活性化

[[381381]]新型コロナウイルス感染症からの回復にあたり、私たちは都市を再考する機会を得ていま...

ローカルウェブサイトが繰り返しブロックされている:Baiduに別れを告げる時が来た

まず、私は IT 担当者でもなければ、プロのライターでもありません。Baidu が私を中傷したように...

検索エンジンごとのSEO最適化の違い

学生の中には、検索エンジンによって SEO 最適化作業にどのような違いがあるのか​​とよく質問する人...

1分でDockerを使って新しいSentry-CLIを使い始める - バージョンを作成する

この記事はWeChatの公開アカウント「Hacker Afternoon Tea」から転載したもので...