0

カスタム フィールドを使用してメンバーシップ ユーザーの作成を処理するクラスを作成しました。

私はこの解決策に基づいてそれを行いました:

そして今、私はユーザーを作成してプロファイルデータを取得しようとしています:

if (Membership.GetUserNameByEmail(email) == null)
{
MembershipUser member = Membership.CreateUser(username, password, email);

Roles.AddUserToRole(username, "WebsiteUsers");

CCL.MemberProfile currentProfile = CCL.MemberProfile.CurrentUser;

bool exists = currentProfile != null;
Response.Write(exists.ToString());
}

しかしcurrentProfileはnullを返しています。

そのため、クラスで設定されたプロパティによって処理されるメンバーのカスタム プロパティに、フォームから値を割り当てることができません:(

どうすればうまくいくのかわかりません:(

誰か考えがありますか?ありがとう

4

1 に答える 1

1

提案 1:

ProfileBase.Create が「MemberProfile」にキャストできるものを返すことを確認してください。それ以外の場合、キャストすると NULL が返されます。

提案 2:

実行中のコンテキストにログインしているユーザーがいることを確認してください。これにより、Membership.GetUser() への呼び出しで現在のユーザー オブジェクトを見つけることができます。

他の考え:

ProfileBase.Create メソッドは、渡されたユーザー名が認証されたユーザーであると想定しています。ユーザーが認証されていない場合の動作についてはわかりません..おそらく NULL を返しますか?

于 2013-03-26T12:58:39.217 に答える