调用aspnet Membership ResetPassword存储过程

时间:2009-07-01 20:24:33

标签: asp.net

我想在aspnet_Membership_ResetPassword数据库中调用名为aspnetdb的aspnet Membership ResetPassword存储过程。

当我查看SqlMembershipProvider类时,有一个ResetPassword方法,但这没用,因为我无法使用存储过程传递参数PasswordFormat。

有人可以建议我如何从c#中的aspx页面的代码隐藏中明确地调用这个存储过程吗?

2 个答案:

答案 0 :(得分:2)

如果您使用加密模式存储密码,最好使用ChangePassword方法,如下所示:

_MembershipUser.ChangePassword(_MembershipUser.GetPassword(),"NewP@ssw0rd");

答案 1 :(得分:0)

PasswordFormat是一个标志,表示ASP是否将密码作为散列,加密或纯文本存储在数据库中。这通常只指定一次(在web.config中)。

passwordFormat="Hashed"

可以在web.config的Configuration部分的Membership子部分找到它,如下所示......

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="LocalSqlServer"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"
         requiresUniqueEmail="true"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="5"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         passwordStrengthRegularExpression=""
         applicationName="/"
            />
  </providers>
</membership>

如前所述,只需使用ChangePassword方法,将自动从web.config中提取PasswordFormat设置。