2011-05-04 59 views
3

我需要從我目前正在對網站的管理後臺編輯的一些設置。我認爲將這些設置放在web.config中是有意義的(或者我應該把它們放在別的地方嗎?)。所以無論如何,我想編寫必要的代碼要做到這一點,但我卡住了...這是我第一次真正需要做,所以... :)這裏是我到目前爲止有:閱讀和編輯配置裏面的Web.config

在Web.config裏面

appSettings部分:

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="InvitationOnly" value="true" /> 
    <add key="MaintainanceMode" value ="false"/> 
    </appSettings> 

這裏就是我試圖寫允許一些值將放置appSettings部分內的易於檢索和修改類:

public static class SiteSettings 
{ 
    public static bool InvitationOnly 
    { 
     get 
     { 
      var invitation = WebConfigurationManager.AppSettings["InvitationOnly"]; 
      return Convert.ToBoolean(invitation); 
     } 
     set 
     { 
      Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); 
      var appSettings = config.GetSection("appSettings") as AppSettingsSection; 
      if(appSettings != null) 
      { 
       //got stuck here... 
      } 
     } 
    } 
} 

我在正確的軌道上?我如何從這裏繼續?

順便說一下,如何安全是它放置在web.config據點內設置?我應該擔心什麼?

謝謝。

回答

7

你肯定不希望修改web.config文件,因爲每個你這樣做你的應用程序只需重新啓動的時間。如果web.config被修改ASP.NET立即卸載AppDomain。 web.config用於存儲應用程序的靜態只讀配置。如果您需要存儲必須修改的設置,則web.config不是正確的位置。你可以使用自定義的文件,會議,餅乾,數據庫,...

+0

是的,我讀過的地方,編輯web.config文件重新啓動應用程序,但是這是什麼意思是什麼呢?卸載AppDomain是什麼意思?最後,我想最好是將這些數據存儲在我認爲的XML文件中? – Kassem 2011-05-04 16:43:10

+0

@Kassem,它表示應用程序從內存中卸載,並且所有請求都中止。這意味着無論您在內存中存儲了什麼內容,Application_Start事件都會在後續請求中被觸發。至於什麼是*最好*很難說,因爲你沒有提供足夠的細節。請注意,如果您轉到XML文件路徑,請不要忘記在管理員正在寫入文件時同步對此文件的訪問權限,前提是某些用戶在嘗試同時閱讀時可能會遇到問題。 – 2011-05-04 16:46:24

+0

哦,我絕對不希望發生這種情況。謝謝你的提醒!關於XML文件...只有管理員才能寫入這個文件。但是,用戶將從該文件讀取。任何我需要準確研究的暗示? – Kassem 2011-05-04 16:51:07