以前に聞いたことがありますが、満足のいく回答が得られなかったため、復活させています。
プロファイル変数があり、それをロードすると、デフォルト値が割り当てられます。割り当てられたことがあるかどうかを確認する必要があります。通常、私はnull比較を使用しますが、それは機能しません。
逆に見えるFindProfilesByUserNameを使用することをお勧めしました。とにかく、この方法は、ユーザーがプロファイルを作成したかどうかだけを教えてくれますが、興味のある特定のメンバーデータについては教えてくれないので機能しません(プロファイルの全体的な目的は、現在のプロファイルに簡単にアクセスできるようにすることだったので、逆に見えますユーザープロファイルデータ。何かが足りない場合を除いて、これは悪いデザインのようです。)
私が見ることができる最後のオプションは、すべてのオブジェクトにビットを割り当てて、それらが汚れているか設定されているかを確認することです。ただし、必要な場合を除いて、これは実行したくありません。
これがFindProfilesByUserNameのサンプルです:
ProfileInfoCollection profileInfo = ProfileManager.FindProfilesByUserName(ProfileAuthenticationOption.All, Membership.GetUser().UserName);
if (profileInfo.Count > 0)
{
if (profileInfo[Membership.GetUser().UserName] != null)
私が持っていた最後のアイデアは、コレクションがnull許容であることを読んだと思うので、コレクションを保存することです。私の場合、コレクションは本当に必要ありませんが、それが最も簡単な解決策かもしれません。提案を楽しみにしています。私はこの問題に関して明らかな何かを見逃しているに違いないと感じています。
明確にするために
これは機能しません(http.context.profile.mydata!= nullの場合)