このメンバーシップの件で苦労しています。
わかりました、それで、それは本当に奇妙です。ユーザー登録できます。登録できます、ログインできます。ただし、別のユーザーを登録しようとすると、ユーザーはデータベースに保存されず、ユーザーがログインしようとすると、メンバーシップ資格情報の検証に失敗したイベントが発生します (ユーザーが保存されていないためだと思います)。
これは、新しいユーザーを保存するために使用しているコードです。
ページ上:
protected void btnRegister_Click(object sender, EventArgs e)
{
if (false == ValidatePage()) return;
FormsAuthentication.SignOut();
MembershipCreateStatus status;
Data.User user = UserManager.CreateUser(txtEmail.Text.Trim(), txtPassword.Text.Trim(), out status);
switch (status)
{
case MembershipCreateStatus.Success:
UserManager.Save(user);
break;
default:
lblMessage.Text = status.ToString();
break;
}
Response.Redirect("~/login.aspx");
}
CreateUser メソッド:
public static User CreateUser(string username, string password, out MembershipCreateStatus status)
{
using (TransactionScope transaction = new TransactionScope())
{
MembershipUser aspnetUser = Membership.CreateUser(username, password, username, null, null, true, out status);
User hqUser = null;
if (status == MembershipCreateStatus.Success)
{
hqUser = new User();
//these properties are only for issues
//that won't blow up. They can be safely removed from the system.
//the aspnet membership tables take care of this stuff for us.
hqUser.LastLoginDate = DateTime.Now;
hqUser.DateCreated = DateTime.Now;
//end properites.
hqUser.Email = username;
hqUser.MembershipID = (Guid)aspnetUser.ProviderUserKey;
Save(hqUser);
}
transaction.Complete();
return hqUser;
}}
追加の保存方法は、ユーザーをアプリのデータベースに保存するためのものです。ただし、ユーザーはメンバーシップデータベースにアクセスしていないため、その前に死んでいることがわかります。
私を燃やしている明らかな何かを見た人はいますか?ありがとう!