ユーザーの新しいプロファイルを作成せずに、既存のユーザーのプロファイルを変更したいと考えています。例: ユーザー名を持っていて、Usr1
彼の年齢だけを変更したいのですが、どうすればよいですか?
4 に答える
このページにいるときは、プロファイルにアクセスするために 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");
あなたがしようとしているのが別のユーザー プロファイルを更新することである場合 (たとえば、顧客のユーザー名を入力する管理者である場合)、次のようなものを使用できます。
Dim p As ProfileCommon = Profile.GetProfile("Usr1")
p.TestValue1 = "New Value"
p.TestValue2 = "Another New Value"
p.Save()
繰り返しますが、Web サイトではなく Web プロジェクトを使用している場合は、厳密に型指定されたプロパティ名の代わりに p.SetPropertyValue() を使用する必要があります。
詳細については、この記事を参照してください。場合によっては (別の回答への私のコメントを参照)、ProfileCommon が生成されないことに注意してください。
この場合、ProfileBase の使用に戻す必要があります。
ProfileBase profile = context.Profile;
DateTime dob= profile.GetPropertyValue("dob") as DateTime;
...
profile.SetPropertyValue("dob",dob);