我想在aspnet_Membership_ResetPassword
数据库中调用名为aspnetdb
的aspnet Membership ResetPassword存储过程。
当我查看SqlMembershipProvider
类时,有一个ResetPassword方法,但这没用,因为我无法使用存储过程传递参数PasswordFormat。
有人可以建议我如何从c#中的aspx页面的代码隐藏中明确地调用这个存储过程吗?
答案 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设置。