• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    ASP.NET 2.0 URL映射技巧

    來源:懂視網 責編:小采 時間:2020-11-27 22:45:20
    文檔

    ASP.NET 2.0 URL映射技巧

    ASP.NET 2.0 URL映射技巧:在項目中經常要進行如下映射 將 http://onewww.net/a.aspxname=llinzzi 映射到 http://onewww.net/llinzzi 首先要解決2個問題 第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符 于是采用了NBEAR的 NBear.Web.Mod
    推薦度:
    導讀ASP.NET 2.0 URL映射技巧:在項目中經常要進行如下映射 將 http://onewww.net/a.aspxname=llinzzi 映射到 http://onewww.net/llinzzi 首先要解決2個問題 第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符 于是采用了NBEAR的 NBear.Web.Mod

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

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

    檢查了幾次,沒發現問題,仔細想了想

    先了下,iis的工作流程應該是遇到.aspx擴展名,交給.net處理,然后才能調用httpModules進行url映射
    http://onewww.net/llinzzi
    沒有aspx擴展名,所以iis直接當成文件架,返回404錯誤了
    而vs2005里的調試web服務器把所有的請求都發給了.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的解析的時候,突然發現windows2003服務器上的iis6對比我工作機xp上的iis5多了一個名為
    通配符應用程序映射 的設置,眼睛一亮..有戲,第一名字聽起來有門,第二2003本來就是為.net打造的.于是點插入,
    輸入 c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 
    測試,成功!

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

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

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

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

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

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

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

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

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

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

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

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    ASP.NET 2.0 URL映射技巧

    ASP.NET 2.0 URL映射技巧:在項目中經常要進行如下映射 將 http://onewww.net/a.aspxname=llinzzi 映射到 http://onewww.net/llinzzi 首先要解決2個問題 第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符 于是采用了NBEAR的 NBear.Web.Mod
    推薦度:
    標簽: 技巧 2.0 ASP.NET
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久精品波多野结衣| 亚洲精品自在在线观看| 麻豆国产精品VA在线观看不卡| 国产精品午睡沙发系列| 欧美亚洲成人精品| 日韩精品www| 精品人妻中文av一区二区三区| 日韩精品无码Av一区二区| 国产精品爱搞视频网站 | 99久久国产综合精品成人影院 | 精品久久久久久国产| 久久久久人妻一区精品性色av| 亚洲国产精品13p| 久久精品中文字幕一区| 国产精品麻豆入口| 国产成人精品怡红院在线观看| 欧美精品人爱c欧美精品| 国产精品久久精品| …久久精品99久久香蕉国产| 国产欧美精品一区二区三区| 无码人妻精品一区二区三区东京热| 午夜精品久久影院蜜桃| 精品人妻少妇一区二区三区不卡| 国产精品电影在线| 国产精品第一页在线| 国产网红主播无码精品| 国产精品美女网站在线观看| 国产精品成人99久久久久| 国产成人精品久久一区二区三区av| 在线精品国产一区二区| 欧美一区二区精品久久| 日本欧美韩国日本精品| 51久久夜色精品国产| 夜色www国产精品资源站| 2024国产精品极品色在线| 国产精品成人69XXX免费视频| 国产精品自在线拍国产电影| 精品国内自产拍在线观看 | 99久久国产主播综合精品| 国产精品视频免费一区二区| 精品久久久久久无码国产|