所有.net的應用程序都將其信息保存在一個基于xml的配置文件里。一般來說,這個.config配置文件位于應用程序可執行文件的目錄下。但是,web應用程序會使用位于應用程序根目錄下的web.config文件。用于asp.net應用程序的web.config包含的信息和其應用程序大多數的操作都相關。現在讓我們剖析一個web.config示例文件,看看你會在其中找到哪些和安全相關的設置。
配置文件的設置和區段
  首先,我們看一下listing a里的配置文件的整體結構。這個文件作為xml文檔必須有一個根元素把其他所有的元素都包括進來。很奇怪的是,在這里根元素是
自定義錯誤頁面
  
驗證
這一區段定義了服務器進行用戶驗證這一過程的細節。所支持的三種不同模式是windows、forms和passport。現在我們來仔細看看每種模式:
windows驗證通過windows的系統帳號來驗證用戶,例如活動目錄(active directory)。windows驗證是最安全的驗證形式,對于程序員來說這種模式是很簡單的,因為整個過程都是由操作系統來處理的。但是,網站的每個用戶都需要一個系統帳號,所以這種模式會被限制在企業內部網(intranet)的應用程序里。
passport驗證使用護照來驗證用戶,它是第二安全的驗證方式。其最好的用武之地是大型的、活動的internet電子商務應用程序,這些程序會驗證用戶的服務使用費。這種模式是.net所選擇的驗證方法。
forms驗證是安全性最低的驗證方法,因為必須要由你的應用程序自己來處理驗證過程。但是,這是最有可能在你internet應用程序上使用的模式,因為它所需要的管理和維護是最少的。
查一下listing a你就可以看到這個網站使用了forms驗證。你可以指定一個自己希望的域名。在這里,我使用的是.aspxauth,其功能和名稱其實是名不符實的。我只不過是把這個元素放進去,用以提醒我它的確有個名字。
你還會看到,我已經為登錄頁面指定了相關的url:/loginform.aspx。當用戶試圖訪問一個安全頁面時,無法通過驗證的用戶就會被引導到這個url。匿名用戶,如果你允許他們訪問你的授權區域的話,就不會被自動送到這個頁面。
  這一區段包含的設置會明確地允許()或者不允許(
  你可以指定由和
  盡管你可以把用戶名保存在
防止用戶在每個頁面都必須登陸的唯一方法是把數據保存在一個通用的數據倉里,例如數據庫。不要把用戶的信任書保存在web.config文件里的另一個原因是,服務器必須重啟,以重新加載新的信任書。這一問題應該會在未來的操作系統里得到修正,但是對于運行iis5的windows 2000服務器版來說,這是個已經具有的問題。
諸多優點
你現在已經看到了如何使用xml文件里的元素,iis需要這些元素來管理asp.net web應用程序的元素。這個配置模型具有諸多你已經體會到了的優點。由于iis通過監視web.config文件來進行更改,所以配置文件的任何變動都會立即體現出來:這樣就不需要服務器的重啟。
新聞熱點
疑難解答
圖片精選