2009-10-20 96 views
1

我正在創建將從中派生特定頁面的基類。也就是說,它不是從System.Web.UI.Page繼承我的頁面,而是從MyPage繼承而來(它繼承自System.Web.UI.Page)。從App_Code訪問asp.net配置文件

但是,我似乎無法訪問配置文件屬性。即使它們都是從Page繼承的,我只能訪問Profile屬性,如果我處於實際的頁面級別。

我確定這只是我對頁面生命週期的誤解,但是有沒有一種方法可以從App_Code中定義的自定義類訪問配置文件?

回答

2

當您在頁面中時,您可以使用ProfileCommon類訪問配置文件。 profilecommon類是在編譯web項目期間由web.net自動從web.config配置文件設置生成的。

如果您想使用app_code文件夾中的配置文件,則必須使用profilebase類。 Profilecommon在頁面中可用也來自此類。

Profilebase可就是這樣

HttpContext.Profile or HttpContext.Current.Profile 

訪問要讀你需要做的概況值以下

HttpContext.Profile.GetPropertyValue("propertyName"); 

要將值寫入到你需要寫

HttpContext.Profile.SetPropertyValue("propertyName", "propertyValue"); 
輪廓
0

您可以通過將強類型配置文件屬性轉換爲ProfileCommon來訪問它們像這樣輸入:

Dim Profile as ProfileCommon = CType(HttpContext.Current.Profile, ProfileCommon) 

Profile.MyProperty1 = "Testing" 
Profile.MyProperty2 = "Cool" 
0

如果要爲其他用戶獲取配置文件屬性值(相對於處於活動狀態)這工作:

Dim theUser As MembershipUser = Membership.GetUser(userID) 
Dim theUserProfile As ProfileBase = ProfileBase.Create(theUser.UserName, True) 
Dim theProperty As String = theUserProfile.GetPropertyValue("Property") 

你會在代碼中使用的ProfileCommon落後,但它在App_Code中不可用。

參考號:MSDN