1

特定のページが派生する基本クラスを作成しています。つまり、System.Web.UI.Pageからページを継承する代わりに、MyPageから継承します(つまり、System.Web.UI.Pageから継承します)。

ただし、Profileプロパティにアクセスできないようです。どちらもPageから継承していますが、実際のページレベルにいる場合にのみ、プロファイルプロパティにアクセスできます。

これはページのライフサイクルについての私の誤解であると確信していますが、App_Codeで定義されているカスタムクラスからプロファイルにアクセスする方法はありますか?

4

3 に答える 3

2

このページにいるときは、プロファイルにアクセスするために ProfileCommon クラスを使用できます。profilecommon クラスは、web プロジェクトのコンパイル中に web.config プロファイル設定から asp.net によって自動的に生成されます。

app_code フォルダーのプロファイルを使用する場合は、profilebase クラスを使用する必要があります。ページで使用できる Profilecommon も、このクラスから派生します。

Profilebase はこのようにアクセスできます

HttpContext.Profile or HttpContext.Current.Profile

プロファイル値を読み取るには、次のことを行う必要があります

HttpContext.Profile.GetPropertyValue("propertyName");

プロファイルに値を書き込むには、書き込む必要があります

HttpContext.Profile.SetPropertyValue("propertyName", "propertyValue");
于 2009-11-04T22:31:42.537 に答える
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

于 2012-12-29T16:26:08.147 に答える
0

次のように ProfileCommon 型にキャストすることで、厳密に型指定されたプロファイル プロパティにアクセスできます。

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

Profile.MyProperty1 = "Testing"
Profile.MyProperty2 = "Cool"
于 2010-10-10T21:52:31.943 に答える