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

ASP.NET 2.0 URL映射技巧

在項(xiàng)目中經(jīng)常要進(jìn)行如下映射

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


<?xml version="1.0"?>
<!-- 
    注意: 除了手動(dòng)編輯此文件以外,您還可以使用 
    Web 管理工具來(lái)配置應(yīng)用程序的設(shè)置。可以使用 Visual Studio 中的
     “網(wǎng)站”->“ASP.NET 配置”選項(xiàng)。
    設(shè)置和注釋的完整列表在 
    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>

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

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

vs2005里進(jìn)行測(cè)試成功,但放到IIS里失敗

檢查了幾次,沒(méi)發(fā)現(xiàn)問(wèn)題,仔細(xì)想了想

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

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

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

搜索了下關(guān)于 通配符應(yīng)用程序映射 的資料

安裝通配符應(yīng)用程序映射
在 IIS 6.0 中,管理員可以在每次開(kāi)始對(duì)網(wǎng)站或虛擬目錄發(fā)送請(qǐng)求時(shí),將該網(wǎng)站或虛擬目錄配置為運(yùn)行 InterNET 服務(wù)器 API (ISAPI),而不管所請(qǐng)求文件的擴(kuò)展名。

當(dāng) IIS Web 服務(wù)器接受到來(lái)自客戶(hù)端的請(qǐng)求時(shí),Web 服務(wù)器會(huì)查看在請(qǐng)求中命名的文件擴(kuò)展名,以確定有哪一個(gè) ISAPI 或公共網(wǎng)關(guān)接口 (CGI) 應(yīng)用程序來(lái)處理該文件。例如,如果請(qǐng)求名為 Default.ASP 的網(wǎng)頁(yè)時(shí),IIS 可以從應(yīng)用程序映射列表中知道 Default.ASP 由 ASP.dll ISAPI 應(yīng)用程序處理。

如果想在所請(qǐng)求的頁(yè)面發(fā)送到映射的應(yīng)用程序前對(duì)每次客戶(hù)端請(qǐng)求執(zhí)行特定的任務(wù),可以編寫(xiě)一個(gè) ISAPI 篩選器在請(qǐng)求到達(dá)時(shí)將其截獲。但是,ISAPI 篩選器具有以下限制:

它們不能訪問(wèn)請(qǐng)求主體,而只訪問(wèn)頭。 
它們只能在每個(gè)站點(diǎn)配置,而不能在每個(gè)虛擬目錄配置。 
它們不應(yīng)包含長(zhǎng)期運(yùn)行的操作,因?yàn)?nbsp;ISAPI 篩選器是同步進(jìn)行的。 
它們的靈活性較小,因?yàn)?nbsp;ISAPI 篩選器 API 的功能比 ISAPI 擴(kuò)展 API 少,后者用于編寫(xiě) ISAPI 應(yīng)用程序。 
它們?cè)跁r(shí)間上難以管理。 
它們是事件驅(qū)動(dòng)的。 



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

客戶(hù)端請(qǐng)求采用以下路由:

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

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

將通配符應(yīng)用程序映射添加到 Web 服務(wù)器或網(wǎng)站

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

AspNet技術(shù)ASP.NET 2.0 URL映射技巧,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 猛烈抽插H1V1 | 国产AV亚洲精品久久久久软件 | 色吧.com | 蜜桃成熟时2电影免费观看d | 欧洲video60| 亚洲不卡视频在线 | 大相蕉伊人狼人久草av | 在线观看免费视频a | 国产欧美一区二区精品仙草咪 | 欧美区一区二 | 成人国产三级在线播放 | 综合久久久久久久综合网 | 花蝴蝶高清在线视频免费观看 | 亚洲地址一地址二地址三 | 91蜜桃视频 | 亚洲综合AV在线在线播放 | 被爽到叫呻呤视频免费视频 | 亚洲一区免费香蕉在线 | 快播电影网站大全 | 新版孕妇bbwbbwbbw| 1313久久国产午夜精品理论片 | 亚洲国产成人综合 | 精品国产在线亚洲欧美 | 秀婷程仪公欲息肉婷在线观看 | 成人a视频片在线观看免费 成人a毛片久久免费播放 | 国产成人久久AV免费看澳门 | 欧美黄色第一页 | 亚洲精品成人无码区一在线观看 | 国产乱子影视频上线免费观看 | 国产乱码伦人偷精品视频 | 国产最新地址 | 裸妇厨房风流在线观看 | 无码欧美毛片一区二区三在线视频 | 91看片淫黄大片.在线天堂 | 久久热精品18国产 | 麻豆国产99在线中文 | 最近免费中文字幕大全免费 | 欧美 亚洲 日韩 在线综合 | 国产精品伊人 | 国产手机在线亚洲精品观看 | 国产精品亚洲精品久久国语 |