我已經通過下述鏈接了轉移,TransferRequest VS在ASP.Net
iis forum和HttpModules & Server.Transfer/Server.TransferRequest/RewritePath problems。但無法理解這些傳輸方法背後的概念。
它們是如何工作的?哪一個在不同的情況下更受歡迎?
有人能解釋我的TransferRequest vs asp.net服務器端轉移的傳輸方法及其角色嗎?
預先感謝
我已經通過下述鏈接了轉移,TransferRequest VS在ASP.Net
iis forum和HttpModules & Server.Transfer/Server.TransferRequest/RewritePath problems。但無法理解這些傳輸方法背後的概念。
它們是如何工作的?哪一個在不同的情況下更受歡迎?
有人能解釋我的TransferRequest vs asp.net服務器端轉移的傳輸方法及其角色嗎?
預先感謝
HttpServerUtility.Transfer
終止當前頁面的執行並開始執行提供的URL。 這基本上映射並執行一個新的ASP.NET頁面(或提供一個靜態文件)對應於提供的URL。它在當前的請求管道中原地執行此操作,而不將新配置應用於新的url,或者爲新的url重新運行IIS模塊。正因爲如此,速度非常快,但它也阻止了很多TRQ可能發生的情況。
HttpServerUtility.TransferRequest
執行提供的URL的異步執行。 這是一個完整的IIS子請求,它允許它重新運行新請求的整個請求管道,就好像它是一個單獨的請求,爲其獲取正確的配置並運行所有常規的IIS模塊包括身份驗證,授權等。例如,IIS將爲新的url應用授權規則,而不是之前的url。
TransferRequest,好像它是一個獨立的請求重新運行整個請求流水線。這意味着IIS和ASP.NET模塊被重新應用;新網址的身份驗證和授權規則將得到遵守。請注意,TransferRequest需要IIS 7+的集成管道模式,並且傳輸可以傳輸到ASP頁面或其他資源(如XML文件)。
Transfer將執行從一個ASP頁面轉移到服務器上的另一個ASP頁面。與TransferRequest不同,IIS和ASP.NET不會驗證當前用戶是否有權查看由Transfer方法傳遞的資源。如果您需要強制重新授權,並且不能選擇集成管道模式,請撥打Redirect而不是傳輸方法。重定向觸發客戶端重定向,以便新請求將受到IIS和ASP.NET的所有身份驗證和授權邏輯的支配。