gpt4 book ai didi

mysql - asp.net MVC 密码恢复工具不工作

转载 作者:行者123 更新时间:2023-11-29 03:46:54 27 4
gpt4 key购买 nike

我在 ASP.NET MVC 2 网络应用程序中使用密码恢复控件。当我单击没有用户名的提交按钮时,它表示用户名丢失并带有星号。如果我输入用户名,表单会提交但什么也没有发生。我在这里遗漏了什么吗?

网络配置:

<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="yyy@zzz.com">
<network host="mail.zzz.com" userName="yyy@zzz.com"
password="xxxxx" enableSsl="false" />
</smtp>
</mailSettings>
</system.net>

机器配置

<membership defaultProvider="MySQLMembershipProvider">
<providers>
<add name="MySQLMembershipProvider"
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
autogenerateschema="true"
connectionStringName="LocalMySqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>

最佳答案

根据您的配置,您正在使用散列密码并禁用密码检索。这意味着您无法恢复密码(因为它们是散列的)。您只能重置它们。

这是一个安全设置,所以不要更改它。但请注意,密码经过哈希处理后无法“恢复”。

如果您的要求指定密码必须是可恢复的,那么您必须将 passwordFormat 更改为 Encrypted 并设置 enablePasswordRetrieval="true"。但是请注意,数据库中的任何散列密码和密码答案都需要用户重新输入,因为就提供者而言,当前值将“损坏”。要强制执行此更改,您可以覆盖登录页面中的 Authenticate 方法并检查用户的 LastPasswordChange 日期,然后将他们重定向到一个页面以重新配置他们的密码和答案,以便他们可以正确登录。

不过最后要提到的是,加密的密码是可以检索的,因为它们可以被解密。这意味着它们不太安全。因此,如果可以的话,请坚持使用散列密码。

关于mysql - asp.net MVC 密码恢复工具不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154044/

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