本篇來講講對web.config文件的讀寫,並不是誰都可以對web.config文件進行讀寫操作的,必須要有一 定的權限才行的。
其實在web.config中的很多的配置節點都是與一個類相對應的,我們可以通過相應的類來,利用其強 類型的API來對相應的配置進行訪問,而不用把web.config 當做一個XML來讀取。
我們可以用兩種方式來對配置文件進行訪問,首先,可以用強類型的API來訪問,這就要用要 ConfigurationManager類。如下:
using System.Web.Configuration;
using System.Configuration;
protected void Page_Load(object sender, EventArgs e)
{
SessionStateSection sts =
(SessionStateSection)
ConfigurationManager.GetSection("system.web/sessionState");
Response.Write("The session state mode is: " + sts.Mode.ToString() + "<br/>");
}
大家應該可以看到,其實我們現在就是對sessionState節點進行訪問。
在ConfigurationManager中有一個靜態的方法GetSection,傳入我們要訪問節點的XPath,如上面的 system.web/sessionState,然後把結果轉換為對應的強類型,我們就可以訪問節點的屬性等信息。在 System.Web.Configuration空間中,我們可以找到對應節點的強類型。
有一點要注意的就是:ConfigurationManager僅僅只能處理當前網站中的web.config,也就是說它不 能處理別的網站的中的配置文件。如我們現在的網站是DemoA,那麼上面的實例代碼訪問的就是DemoA中的 web.config,不能訪問DemoB中的web.config。
但是我們還可以用第二種方法來做,就是用WebConfigurationManager。代碼如下:
using System.Web.Configuration;
using System.Configuration;
protected void Page_Load(object sender, EventArgs e)
{
MembershipSection ms =
MembershipSection)
WebConfigurationManager.GetSection("system.web/membership", "~/web.config");
Response.Write("The default provider as set in config is: " +
ms.DefaultProvider + "<br/>");}
}