天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

ASP.NET 2.0 URL映射技巧

在項目中經常要進行如下映射

http://onewww.NET/a.ASPx?name=llinzzi
映射到
http://onewww.NET/llinzzi
首先要解決2個問題
第一是支持通配符的映射 URL映射是ASP.NET2.0新增的功能,不支持通配符
于是采用了NBEAR的 NBear.Web.Modules.UrlRewriteRules 進行通配符映射


<?xml version="1.0"?>
<!-- 
    注意: 除了手動編輯此文件以外,您還可以使用 
    Web 管理工具來配置應用程序的設置。可以使用 Visual Studio 中的
     “網站”->“ASP.NET 配置”選項。
    設置和注釋的完整列表在 
    machine.config.comments 中,該文件通常位于 
    /Windows/Microsoft.NET/Framework/v2.x/Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NETConfiguration/v2.0">
  <configSections>
    <section name="UrlRewriteRules" type="NBear.Web.Modules.UrlRewriteRules, NBear.Web"/>
  </configSections>
  <UrlRewriteRules>
    <Rule key="/(.*)/" value="/a.ASPx?name=$1" />
    <Rule key="/(.*)" value="/a.ASPx?name=$1" />
  </UrlRewriteRules>  

  <appSettings/>




  <system.web>

    <sessionState timeout="200" />
    <httpModules>
      <add type="NBear.Web.Modules.UrlRewriteModule, NBear.Web" name="UrlRewriteModule"/>
    </httpModules>

    <!-- 
            設置 compilation debug="true" 將調試符號插入
            已編譯的頁面中。但由于這會 
            影響性能,因此只在開發(fā)過程中將此值 
            設置為 true。
        -->
        <compilation debug="true" defaultLanguage="c#" />
        <!--
            通過 <authentication> 節(jié)可以配置 ASP.NET 使用的 
            安全身份驗證模式,
            以標識傳入的用戶。 
        -->
        <authentication mode="Windows"/>
        <!--
            如果在執(zhí)行請求的過程中出現未處理的錯誤,
            則通過 <customErrors> 節(jié)可以配置相應的處理步驟。具體說來,
            開發(fā)人員通過該節(jié)可以配置
            要顯示的 html 錯誤頁
            以代替錯誤堆棧跟蹤。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    </system.web>
</configuration>

vs2005里進行測試成功,但放到IIS里失敗

檢查了幾次,沒發(fā)現問題,仔細想了想

先了下,iis的工作流程應該是遇到.ASPx擴展名,交給.NET處理,然后才能調用httpModules進行url映射
http://onewww.NET/llinzzi
沒有ASPx擴展名,所以iis直接當成文件架,返回404錯誤了
而vs2005里的調試web服務器把所有的請求都發(fā)給了.NET處理,所以成功.
于是更改映為
  <Rule key="/(.*)/index.ASPx" value="/a.ASPx?name=$1" />
瀏覽
http://onewww.NET/llinzzi/index.ASPx
測試成功.
開心,把index.ASPx設置成默認文檔
測試http://onewww.NET/llinzzi/ 結果還是404錯誤
想了下iis認為llinzzi文件夾不存在,自然就沒用默認文檔去訪問

郁悶,想了很多方法,均失敗
難道要用 llinzzi/index.html訪問?難道要生成真是存在的文件夾?
都不是理想的方案

在嘗試從iis里的主目錄里的配置里修改isapi來實現用文件夾對iis的解析的時候,突然發(fā)現windows2003服務器上的iis6對比我工作機xp上的iis5多了一個名為
通配符應用程序映射 的設置,眼睛一亮..有戲,第一名字聽起來有門,第二2003本來就是為.NET打造的.于是點插入,
輸入 c:/windows/microsoft.NET/framework/v2.0.50727/ASPNET_isapi.dll 
測試,成功!

搜索了下關于 通配符應用程序映射 的資料

安裝通配符應用程序映射
在 IIS 6.0 中,管理員可以在每次開始對網站或虛擬目錄發(fā)送請求時,將該網站或虛擬目錄配置為運行 InterNET 服務器 API (ISAPI),而不管所請求文件的擴展名。

當 IIS Web 服務器接受到來自客戶端的請求時,Web 服務器會查看在請求中命名的文件擴展名,以確定有哪一個 ISAPI 或公共網關接口 (CGI) 應用程序來處理該文件。例如,如果請求名為 Default.ASP 的網頁時,IIS 可以從應用程序映射列表中知道 Default.ASP 由 ASP.dll ISAPI 應用程序處理。

如果想在所請求的頁面發(fā)送到映射的應用程序前對每次客戶端請求執(zhí)行特定的任務,可以編寫一個 ISAPI 篩選器在請求到達時將其截獲。但是,ISAPI 篩選器具有以下限制:

它們不能訪問請求主體,而只訪問頭。 
它們只能在每個站點配置,而不能在每個虛擬目錄配置。 
它們不應包含長期運行的操作,因為 ISAPI 篩選器是同步進行的。 
它們的靈活性較小,因為 ISAPI 篩選器 API 的功能比 ISAPI 擴展 API 少,后者用于編寫 ISAPI 應用程序。 
它們在時間上難以管理。 
它們是事件驅動的。 



通過使用通配符應用程序映射,您可以在所請求的頁面發(fā)送到其映射應用程序之前截獲每個請求。其效果就像擁有處理每個文件名擴展的應用程序映射。這就是使用“通配符”來命名這一功能的原因。使用通配符應用程序映射的應用程序只能是 ISAPI 應用程序。

客戶端請求采用以下路由:

傳入的請求由安裝在根網站上的任何現有的 ISAPI 篩選器處理。ISAPI 篩選器依次執(zhí)行。 
請求被發(fā)送到任何現有的通配符應用程序映射的應用程序,這些程序也是依次執(zhí)行的。如果傳入的請求是對虛擬目錄中的 Web 文件進行請求的,且通配符應用程序映射已安裝在了該虛擬目錄和根網站上,那么只有安裝在該虛擬目錄的通配符應用程序映射才被執(zhí)行。如果該虛擬目錄上沒有安裝通配符應用程序映射,則將執(zhí)行安裝在網站上的通配符應用程序映射。換句話說,通配符應用程序映射只在所請求的 Web 文件所處的應用程序中不存在映射時才會被繼承。 
IIS 服務器會查看應用程序映射表,以確定由哪個 ISAPI 應用程序或 CGI 腳本專門處理所請求的文件。 
每個階段都可以附加響應,然后傳回給客戶端。 
使用通配符應用程序映射
通配符應用程序映射可以在以下方案中使用:

高安全性 Web 應用程序(如銀行業(yè)應用程序)要求對每個提出請求的用戶根據用戶名、密碼和帳戶號數據庫進行身份驗證。例如,一旦用戶通過了身份驗證,將會創(chuàng)建規(guī)定用戶可以訪問哪些信息的特定規(guī)則。如果通配符應用程序映射確定用戶不具有相應權利,它可以阻止請求的進一步訪問,或將請求發(fā)送到所請求的網頁以外的網頁。這種自定義的身份驗證和授權方案可以在 ISAPI 應用程序中執(zhí)行,并安裝為通配符應用程序映射。這樣,所有用戶必須通過身份驗證,不考慮他們所請求的文件的擴展名。 
針對單個用戶的廣告電子商務網站。例如,當返回用戶所提出的請求時,通配符應用程序映射應用程序將檢查他們的身份,然后查詢他們以前已觀看或購買的項目。一旦通配符腳本映射將控制傳送到被請求的頁面,就可以顯示適合該用戶的廣告。 
 要點 您必須是本地計算機上 Administrators 組的成員或者必須被委派了相應的權限,才能執(zhí)行下列步驟。作為安全性的最佳操作,請使用不屬于 Administrators 組的帳戶登錄計算機,然后使用運行方式命令以管理員身份運行 IIS 管理器。在命令提示符下,鍵入 runas /user:administrative_accountname "mmc %systemroot%/system32/iNETsrv/iis.msc"。

將通配符應用程序映射添加到 Web 服務器或網站

在 IIS 管理器中,展開本地計算機,展開“網站”文件夾,右鍵單擊所需的網站或虛擬目錄,然后單擊“屬性”。 
單擊相應的選項卡:“主目錄”、“虛擬目錄”、或“目錄”。 
在“應用程序設置”區(qū)域中,單擊“配置”,然后單擊“映射”選項卡。 
要安裝通配符應用程序映射,請進行以下操作: 
在“映射”選項卡上,單擊“插入”。 
在“可執(zhí)行文件”文本框中鍵入 DLL 的路徑或單擊“瀏覽”以找到該文件,如果該 DLL 文件是腳本引擎,選擇“應用程序引擎”復選框,然后單擊“確定”。 
要編輯或刪除通配符應用程序映射,請進行以下操作: 
在“應用程序擴展”列表中,單擊想更改的腳本映射。 
單擊“編輯”更改腳本映射,或單擊“刪除”刪除腳本映射。 
要更改通配符應用程序執(zhí)行的順序,在“通配符應用程序映射(執(zhí)行順序)”框中重新安排通配符應用程序映射,其方法是單擊“上移”或“下移”按鈕直到符合您想要的順序為止。 
 注意 請不要在通配符應用程序映射列表中多次列出同一應用程序。

AspNet技術ASP.NET 2.0 URL映射技巧,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 一二三四视频免费社区5 | 日本在线免费播放 | 奶头好翘是不是想要了 | 亚洲色噜噜狠狠站欲八 | 亚洲中文无码永久免费 | 久久精品国产96精品亚洲 | 伊人影院综合在线 | 国产亚洲欧美在线中文BT天堂网 | 国产 亚洲 另类 欧美 在线 | 翘臀后进美女白嫩屁股视频 | 国产在线精品亚洲视频在线 | 色色噜一噜 | 四虎国产精品高清在线观看 | 99热在线视频这里只精品 | 草莓视频在线观看完整高清免费 | 久久国产视频网 | 潮 喷女王cytherea | 久久在精品线影院 | 乱叫抽搐流白浆免费视频 | 国内九一激情白浆发布 | 久久99蜜桃精品麻豆 | 精品区2区3区4区产品乱码9 | 亚洲色综合中文字幕在线 | 六月婷婷国产精品综合 | 色爱区综合小说 | 九九久久精品 | 欧美人与动牲交XXXXBBBB免费 | 蛇缚dvd | 久久午夜伦理 | 被黑人做的白浆直流 | 久久视频这里只精品99热在线观看 | 做暖暖视频在线看片免费 | 亚洲精品无码国产爽快A片 亚洲精品无码成人AAA片 | 在线亚洲精品国产一区麻豆 | 动漫美女被吸奶 | 一区二区中文字幕在线观看 | 亚洲免费视频日本一区二区 | 动漫美女被到爽了流 | 2020国产成人精品视频人 | 亚洲精品无夜久久久久久久久 | 俄罗斯性xxxx |