我正在创建一个基类,从中可以派生出特定的页面。也就是说,它们不是从System.Web.UI.Page继承我的页面,而是继承自MyPage(继承自System.Web.UI.Page)。
但是,我似乎无法访问Profile属性。即使它们都继承自Page,但如果我处于实际的页面级别,我只能访问Profile属性。
我确定这只是我对页面生命周期的误解,但有没有办法从App_Code中定义的自定义类访问配置文件?
答案 0 :(得分:2)
当您在页面中时,您可以使用ProfileCommon类来访问配置文件。在编译Web项目期间,asp.net会自动从web.config配置文件设置生成profilecommon类。
如果您想使用app_code文件夹中的配置文件,则必须使用profilebase类。页面中可用的Profilecommon也派生自此类。
Profilebase可以像这样访问
HttpContext.Profile or HttpContext.Current.Profile
要阅读个人资料值,您需要执行以下操作
HttpContext.Profile.GetPropertyValue("propertyName");
要为您需要编写的配置文件写入值
HttpContext.Profile.SetPropertyValue("propertyName", "propertyValue");
答案 1 :(得分:0)
您可以通过将强类型配置文件属性转换为ProfileCommon类型来访问它:
Dim Profile as ProfileCommon = CType(HttpContext.Current.Profile, ProfileCommon)
Profile.MyProperty1 = "Testing"
Profile.MyProperty2 = "Cool"
答案 2 :(得分: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