我已經覆蓋了會員的方法來創建一個自定義的成員。如何在mvc中使用自定義成員身份添加更多自定義字段?
在帳戶模型我已經覆蓋的方法CreateUser
:
public override MembershipUser CreateUser(string username, string password,
string email, string passwordQuestion, string passwordAnswer,
bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(
username, password, true);
OnValidatingPassword(args);
if (args.Cancel)
{
status = MembershipCreateStatus.InvalidPassword;
return null;
}
if (RequiresUniqueEmail && GetUserNameByEmail(email) != "")
{
status = MembershipCreateStatus.DuplicateEmail;
return null;
}
MembershipUser u = GetUser(username, false);
if (u == null)
{
UserRepository _user = new UserRepository();
// Here I call my new method which has fields I've created in the
// User table; I'm using entity framework.
_user.CreateUser(username, password, email);
status = MembershipCreateStatus.Success;
return GetUser(username, false);
}
else
{
status = MembershipCreateStatus.DuplicateUserName;
}
return null;
}
public MembershipUser CreateUser(string username, string password,
string email)
{
using (CustomMembershipDB db = new CustomMembershipDB())
{
User user = new User();
user.UserName = username;
user.Email = email;
user.PasswordSalt = CreateSalt();
user.Password = CreatePasswordHash(password, user.PasswordSalt);
user.CreatedDate = DateTime.Now;
user.IsActivated = false;
user.IsLockedOut = false;
user.LastLockedOutDate = DateTime.Now;
user.LastLoginDate = DateTime.Now;
//Generate an email key
// user.NewEmailKey = GenerateKey();
db.AddToUsers(user);
db.SaveChanges();
//send mail
// SendMail(user);
return GetUser(username);
}
}
現在,這裏我需要添加喜歡的名字和姓氏,但更多的兩個字段我怎麼能傳遞給上述方法? 。
由於覆蓋方法CreateUser
會給我一個錯誤,如果我像添加名字和姓氏參數進去:(
你真的不應該嘗試字段添加到類的MembershipUser。如果你想存儲名字,姓氏等,Profile&ProfileProvider('web.config中的'')就是爲此而設計的。 –
danludwig
2012-01-06 17:38:30
我該如何使用,請給我任何鏈接? – Neo 2012-01-06 17:42:08
這裏是你的鏈接:https://www.google.com?q=asp.net+profile+provider – danludwig 2012-01-06 17:49:53