gpt4 book ai didi

c# - MembershipService.ChangePassword 不更改密码问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:43 24 4
gpt4 key购买 nike

MembershipService.ChangePassword 不更改密码问题。我不知道为什么...

var userUsers = from n in db.aspnet_Users where n.UserId == id select n;
string userName = userUsers.Single<aspnet_Users>().UserName;

MembershipUser user = Membership.GetUser(userName, false);
if (user != null)
{
string generatedPassword = user.ResetPassword();
if (MembershipService.ChangePassword(userName, generatedPassword, model.NewPassword))
{

// So it doesn't change the password

最佳答案

检查 this在文档中:

ChangePassword returns true if the password was updated successfully. Otherwise, it returns false.

在更改密码之前,ChangePassword 调用提供程序的可重写的 OnValidatingPassword 方法来验证新密码。然后它根据调用结果更改密码或取消操作

If the user name, password, new password, or password answer is not valid, ChangePassword does not throw an exception; it simply returns false.

成功更改密码后,ChangePassword 会更新用户的 LastPasswordChangedDate

当我遇到完全相同的问题时,这对我有帮助。密码无效,因此该方法实际上从未更改过它。我更改了 web.config 文件中的一些密码配置,然后终于成功了。

检查 web.config 的这一行,这可能是问题所在:

<membership defaultProvider="Demo_MemberShipProvider">
<providers>
<add name="Demo_MemberShipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="cnn"
enablePasswordRetrieval="false"
**enablePasswordReset="true"**
**requiresQuestionAndAnswer="true"**
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
**minRequiredPasswordLength="5"**
**minRequiredNonalphanumericCharacters="0"**
passwordAttemptWindow="10" passwordStrengthRegularExpression="">
</providers>
</membership>

希望对您有所帮助!

关于c# - MembershipService.ChangePassword 不更改密码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com