次のようにユーザーを作成しました。
MembershipCreateStatus status = MembershipCreateStatus.InvalidPassword;
MembershipUser newUser = Membership.CreateUser(userNameTxt.Text.Trim(),
passwordTxt.Text, emailTxt.Text, "N//A", "N//A", true, out status);
Roles.AddUserToRole(userNameTxt.Text.Trim(), "Member");
// Gather and save Profile info
CustomProfile profile = CustomProfile.GetProfile(userNameTxt.Text.Trim());
profile.Personal.Email = emailTxt.Text.Trim();
profile.Personal.FirstName = firstNameTxt.Text.Trim();
profile.Personal.LastName = lastNameTxt.Text.Trim();
profile.Personal.Street = streetTxt.Text.Trim();
profile.Personal.City = cityTxt.Text.Trim();
profile.Personal.State = stateDDL.SelectedValue;
profile.Personal.Zip = zipTxt.Text.Trim();
profile.Save();
DB プロファイル テーブルにはデータが表示されますが、ユーザー テーブルには表示されません。これは仕様によるものですか? PasswordRecovery コントロールを使用すると、この方法で作成されたユーザーが認識されないようです。この方法でプロファイルを作成するときに使用されるテーブルと、パスワードをリセットする方法を誰かが説明できますか?
アップデート:
PasswordRecovery コントロールのテスト時にユーザー名に対して null を取得する:
MembershipUser user = Membership.GetUser(User.Identity.Name);
if (Page.IsPostBack)
{
Response.Write(user.UserName);
}
<add
name="DefaultMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="1000"
applicationName="/" >