WebMatrix.WebData上的WebSecurity简单成员资格检索密码

时间:2013-10-18 02:40:32

标签: security asp.net-mvc-4 membership-provider simplemembership

我们的模块具有检索密码功能,因此如果用户忘记了密码,他可以检索密码,系统将通过电子邮件发送密码。我们在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>
...

是否有其他方法可以检索用户的简单会员密码?我可以在webpages_Membership表上查询,但密码是加密的。有谁知道这个解密算法?我尝试了FormsAuthentication.Decrypt(encryptedpassword);,但我收到错误“'encryptedTicket'参数的值无效。”虽然传递的密码是加密的。

请帮忙。

1 个答案:

答案 0 :(得分:2)

绝对没有办法从webmatrix安全实施中获取您提出的明文密码。密码被盐渍和散列,你不能反过来获得纯文本密码,这是一件好事。

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