我正在编写更改密码的代码,但我不知道数据未更新到数据库的原因。我已经建立了自定义会员表和会员 Provider 类。这里名为 IVRControlPanelEntities 的实体是从实体框架生成的。我有以下功能来更改密码。
public bool ChangePassword(string username, string oldPassword, string newPassword)
{
IVRControlPanelMembershipProvider memberservice = new IVRControlPanelMembershipProvider();
if (!memberservice.ValidateUser(username, oldPassword) || string.IsNullOrEmpty(newPassword.Trim()))
{
return false;
}
else
{
using (IVRControlPanelEntities db = new IVRControlPanelEntities())
{
User user = GetUser(username);
// string hash = FormsAuthentication.HashPasswordForStoringInConfigFile(newPassword.Trim(), "md5");
string PasswordSalt = CreateSalt();
user.PasswordSalt = PasswordSalt;
user.Password = CreatePasswordHash(newPassword, PasswordSalt);
db.SaveChanges();
}
return true;
}
}
问题: 我尝试更改密码,一切正常,但新密码的数据未更新到表中。我还搜索了原因并使用了以下代码:1。
db.Entry(user).State = EntityState.Modified;
2.
db.Users.Attach(user);
db.ApplyCurrentValues("Users", user);
以上都不起作用,也使用TryUpdateModel()函数,但它没有检测到 .
这可能是由于对象的状态未定义,我该如何解决这个问题