如何從IIS應用程序訪問網絡文件
發表于:2007-06-13來源:作者:點擊數:
標簽:
當您從 Internet Server API (ISAPI) 擴展、Active Server Pages (ASP) 頁或“通用網關接口”(CGI) 應用程序訪問的文件所在的計算機不是 Internet Information Server (IIS) 服務器 時,可能會遇到一些問題,本文提供與這些問題相關的信息。本文列出涉及到的
當您從 Internet Server API (ISAPI) 擴展、Active Server Pages (ASP) 頁或“通用網關接口”(CGI) 應用程序訪問的文件所在的計算機不是 Internet Information Server (IIS)
服務器時,可能會遇到一些問題,本文提供與這些問題相關的信息。本文列出涉及到的一些問題和可能的解決方法。 雖然本文主要針對訪問網絡共享位置上的文件而寫,但相同的概念也適用于命名管道連接。命名管道通常用于 SQL Server 連接和遠程過程調用 (RPC) 及“組件對象模型”(COM) 通信。尤其是,如果通過配置為使用“Microsoft Windows NT 集成
安全性” 的網絡連接到 SQL Server,則會因本文所述的問題而無法連接。RPC 和 COM 也可能使用其他具有類似網絡身份驗證方案的通信機制。因此,本文中的概念適用于從您的 IIS 應用程序使用的各種網絡通信機制。
身份驗證和模擬類型
當 IIS 為 HTTP 請求提供服務時,IIS 將執行模擬,以便對處理請求的資源訪問權限進行適當的限制。模擬的安全上下文基于為請求執行的身份驗證類型。IIS 4.0 提供五種不同的身份驗證類型:
身份驗證類型 模擬類型
匿名訪問(無身份驗證) 網絡
自動密碼同步為
ON(ON=默認值)
匿名訪問(無身份驗證) IIS 明文
自動密碼同步為 OFF
基本身份驗證 IIS 明文
NT 質詢/響應身份驗證 網絡
客戶端 SSL 證書映射 交互式
令牌類型
是否允許訪問網絡資源取決于在什么類型的模擬令牌下處理請求。
• |
“不”允許網絡令牌訪問網絡資源。(之所以將它命名為網絡令牌,原因是此類令牌過去通常是當用戶在整個網絡中經過身份驗證時由服務器創建的。允許服務器使用網絡令牌充當網絡客戶端并訪問其他服務器,這種做法稱為“委派”且被視為潛在的安全漏洞。) |
• |
過去,當在計算機上對本地用戶進行身份驗證時會使用交互式令牌。允許交互式令牌訪問整個網絡的資源。 |
• |
批處理令牌旨在為批處理作業的運行提供安全上下文。批處理令牌具有網絡訪問權限。 |
IIS 有一個
明文登錄的概念。之所以稱其為
明文登錄,原因是 IIS 具有以明文方式訪問用戶名和密碼的權限。通過置配置
數據庫中的
LogonMethod 屬性,您可以控制
明文登錄創建的令牌類型:“網絡”令牌、“交互式”令牌或“批處理”令牌。默認情況下,
明文登錄收到“交互式”令牌,可以訪問網絡資源。您可以在服務器、站點、虛擬目錄、目錄或文件級別配置
LogonMethod。
匿名訪問模擬配置為請求的匿名用戶的帳戶。默認情況下,IIS 有一個稱為 IUSR_<計算機名> 的匿名用戶帳戶,在處理不需要身份驗證的請求時模擬該帳戶。默認情況下,IIS 4.0 具有一項稱為“啟用自動密碼同步”的可配置功能,它使用安全次權限創建令牌。通過這種方式創建的令牌是網絡令牌,它們“不能”訪問網絡中的其他計算機。如果禁用“自動密碼同步”,IIS 以與前面所述的
明文登錄相同的方式創建令牌?!白詣用艽a同步”只用于 IIS 所在計算機上的帳戶。因此,如果將匿名帳戶更改為域帳戶,則無法使用“自動密碼同步”,而會收到
明文登錄。但這種情況有一個例外,那就是在“主域控制器”上安裝 IIS 時。在此情況下,域帳戶位于本地計算機上。您可以在服務器、站點、虛擬目錄、目錄或文件級別配置匿名帳戶或“自動密碼同步”選項。
訪問網絡資源的第一步是必須具有正確的令牌類型。您還必須模擬對整個網絡的資源有訪問權限的帳戶。默認情況下,IIS 為匿名請求創建的 IUSR_<計算機名> 帳戶只在本地計算機上存在。即使通過禁用“自動密碼同步”獲得了可以訪問網絡資源的“交互式”令牌,IUSR_<計算機名> 帳戶通常也不能訪問大多數網絡資源,因為其他計算機不識別該帳戶。如果要用匿名請求訪問網絡資源,則必須將默認帳戶替換為可由網絡中的所有計算機識別的域帳戶。如果在“域控制器”上安裝 IIS,IUSR_<計算機名> 帳戶就是域帳戶,您不需要執行額外操作,網絡中的其他計算機一定識別該帳戶。