確定 ASP.NET 中瀏覽器的功能
2006/12/23 17:27:50

Web 應用程序不同于運行在同源環境中的其他應用程序,因為前者會將輸出發送到各種各樣的平臺和 Web 瀏覽器。有些瀏覽器支持客戶端腳本,有些支持 XHTML,還有一些會限制屏幕區域。那么您的 Web 應用程序如何將內容傳遞給具有限制功能或具有特殊要求的瀏覽器呢?
為了回答這個問題,我將深入研究 ASP.NET 1.1 的支持,旨在確定瀏覽器的功能。要查看 ASP.NET 2.0 中即將推出的功能,請參閱提要欄“ASP.NET 2.0 中瀏覽器的功能”。[編輯更新 — 2004 年 12 月 14 日:提要欄已經更新。] HTTP 標頭和用戶代理

確定將請求發送到您的 Web 站點的瀏覽器功能的第一步是,查明瀏覽器屬于哪種類型。在 HTTP 標頭中發送的有效負載包含了用戶代理字符串,它描述了發出請求的瀏覽器。雖然,通常您看不到由客戶端瀏覽器發送給遠程 Web 站點的標頭,但您可以使用 TCP 跟蹤應用程序來查看。我使用 TCPTrace(由 Simon Fell 和 Matt Humphrey 編寫的一個應用程序)來檢驗標頭。圖 1 顯示某種 Web 請求的標頭轉儲。
請注意圖 2 中的用戶代理字符串。在您的 ASP.NET 應用程序中,您可以通過編程方式輕松地從標頭集合中提取字符串。在應用程序中啟用跟蹤時,您也可以查看用戶代理字符串,如圖 3 所示。

圖 3 所顯示的 HTTP_USER_AGENT 字符串

這很順利,但是您可以用這些信息來做什么呢?只有當您知道附加給每個瀏覽器版本的功能是什么時,它們才會有用。在傳統的 ASP 和 ASP.NET 中,各種不同瀏覽器的功能記錄在輔助文件中。 確定瀏覽器功能

在傳統的 ASP 中,DLL %windir%\System32\inetsrv\browscap.dll 包含一個類,該類根據傳入的用戶代理字符串來確定瀏覽器的功能。瀏覽器功能對象會檢查 %windir%\System32\inetsrv\browscap.ini,以將用戶代理字符串與 .ini 文件中的特定部分相匹配,該文件描述了這個瀏覽器的一些眾所周知的功能。(ATL 服務器是用于創建 ISAPI DLL 的 C++ 模板庫,它也使用 browscap.ini 來確定瀏覽器功能。有關 ATL 服務器的更多信息,請查看 MSDN®Magazine 2003 年 11 月一期中的 ASP 專欄。)
圖 4 顯示了 browscap.ini 文件的一部分,它說明將自己識別為 Microsoft® Internet Explorer 2.0 的瀏覽器的功能。這部分 .ini 文件表明 Internet Explorer 既不支持客戶端腳本,也不支持 Java 小程序。
要使用傳統 ASP 應用程序中的信息,您必須在腳本塊中創建 BrowserType 對象(它是具有“MSWC.BrowserType”的 ProgID 的 COM 對象),并查詢它的屬性,以獲得諸如瀏覽器名稱、版本以及是否支持 cookie 等信息。您可以通過這些信息準確地傳送您的內容。
ASP.NET 包含用于詢問瀏覽器功能的 HttpBrowserCapabilities 類。HttpRequest 類包含對 HttpBrowserCapabilties 類的實例的引用,因此它通常在整個應用程序中都可用。您可以從當前的 Page 實例或 HttpContext 類的當前實例中提取它。HttpBrowserCapabilities 包含許多屬性及其意義,正如您在圖 5 中所見。
大多數瀏覽器功能的意義都顯而易見,您可以使用所提供的信息來調整您的輸出。例如,如果您有一個腳本,那么只有當另一端的瀏覽器理解它時,您才會將它發送到客戶端,我用圖 6 中的代碼進行了說明。 將標頭映射到瀏覽器功能

在本專欄的 2004 年 9 月一期中,我看到了 ASP.NET 配置以及 ASP.NET 如何用特定的處理程序來解釋配置文件中的各個部分。現在讓我們來看一下 Machine.config 文件的各個部分,Machine.config 文件是 ASP.NET 中配置的起點。在靠近文件頂端的位置,您將看到一個提供組件名稱的節點,該組件可解釋用戶代理字符串以確定瀏覽器的功能:
<sectionGroup name="system.web">  <section name="browserCaps"   

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 国产一区二区三区乱码在线观看| 欧美乱大交xxxxx| 国产日韩欧美不卡在线二区| 99久久国产综合精品swag | 国产又黄又爽胸又大免费视频 | 开心色99×xxxx| 久久亚洲av无码精品色午夜| 欧美交换性一区二区三区| 人人添人人妻人人爽夜欢视av| 美女18毛片免费视频| 国产农村妇女毛片精品久久| 中文字幕第四页| 在线天堂新版在线观看| 中文字幕一区二区视频| 最新69国产成人精品免费视频动漫| 免费v片在线观看无遮挡| 青青草成人在线| 国产精品久久国产精品99盘| 99国产欧美久久精品| 少妇大胆瓣开下部自慰| 久久久久久久久久久久久久久| 欧美三级免费看| 人人爽人人爽人人片av| 精品久久久噜噜噜久久久| 国产亚洲精品日韩综合网| 男人都懂的网址在线看片| 国产黄三级高清在线观看播放| chinese精品男同志浪小辉| 成成人看片在线| 久久伊人精品热在75| 日韩人妻无码免费视频一区二区三区 | 嘟嘟嘟www在线观看免费高清| 野花香社区在线视频观看播放| 国产精品无码无卡在线播放 | 人妖视频在线观看专区| 精品长泽梓在线播放视频| 国产gaysexchina男同menxnxx| 亚洲一区二区影院| 丽娟女王25部分| 青青草中文字幕| 欧美大肚乱孕交hd|