在Membership表中使用UserId更新密码

时间:2014-07-29 11:58:00

标签: c# asp.net membership-provider

我在我的应用程序中使用会员提供程序, 并为我的应用程序创建了管理面板

和在管理面板中显示在下拉列表中注册到我的应用程序的所有用户 并允许管理员编辑,删除

对于删除用户,我使用了此代码...

Membership.DeleteUser(UserName, true);

但是对于更改密码,我该如何处理(与我一起 UserId可用

2 个答案:

答案 0 :(得分:0)

您真的需要提供更多信息,您是从数据库加载所有这些用户吗? 如果是这样,这个sql语句应该这样做:

Update Membership set password = "new pass" where userID = id

但实际上,请尝试提供更多信息并更好地构建问题

答案 1 :(得分:0)

您使用的是哪个MembershipProvider?有许多,SimpleMembershipProvider,SqlMembershipProvider等。或者你使用自定义MembershipProvider?

如果您使用SimpleMembershipProvider,则ChangePassword操作就像在WebSecurity上调用ChangePassword一样简单,例如:

WebSecurity.ChangePassword(WebSecurity.CurrentUserName, oldPassword, newPassword);

如果您使用的是SqlMembershipProvider,则可以执行与以下代码类似的操作:

[HttpPost]
public ActionResult ChangePassword(ChangePasswordModel model)
{
    string errorMsg = "";

    if (ModelState.IsValid)
    {
        // ChangePassword will throw an exception. We rather
        // want to return false in certain failure scenarios.
        bool changePasswordSucceeded;

        try
        {
            MembershipUser currentUser = Membership.GetUser(User.Identity.Name);
            changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword);
        }
        catch (Exception ex)
        {
            changePasswordSucceeded = false;
            errorMsg = ex.Message;
        }

        return Json(new { Validated = changePasswordSucceeded, Message = errorMsg }, JsonRequestBehavior.AllowGet);
    }

    return View();
} 

请回复您可能有的任何跟进问题。