0

我们的模块具有找回密码功能,如果用户忘记了密码,他可以找回密码,系统将通过电子邮件发送。我们在 MVC4 上使用 SimpleMembership。我检查了 WebSecurity 类,但它没有“GetPassword”方法。我试图搜索网络,而是找到了这个实现。

var user = System.Web.Security.Membership.GetUser(userName);
password = user.GetPassword();

我在 GetPassword 上收到错误消息“不支持指定的方法。”。我还在我的 web.config 中添加了以下内容,但即使用户对象具有价值,我仍然收到提到的错误。

<membership defaultProvider="simple">
 <providers>
 <clear />
<add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider,WebMatrix.WebData"
enablePasswordRetrieval="true" 
enablePasswordReset="true" requiresQuestionAndAnswer="false"/>
 </providers>
...

有没有其他方法可以找回用户的简单会员密码?我可以查询 pages_Membership 表,但密码是加密的。有人知道这个的解密算法吗?我试过 FormsAuthentication.Decrypt(encryptedpassword);了,但出现错误“'encryptedTicket'参数的值无效。” 尽管传递的密码是加密的。

请帮忙。

4

1 回答 1

2

从 webmatrix 安全实施中获取纯文本密码,绝对没有办法按照您的建议进行操作。密码是加盐和散列的,您无法将其反转以获取纯文本密码,这是一件好事。

webmatrix 提供程序确实提供了支持创建密码重置令牌所需的所有功能,该令牌可以发送到注册的电子邮件地址,而不是以纯文本形式发送密码。

于 2013-10-18T19:28:10.480 回答