【发布时间】:2013-02-15 13:06:02
【问题描述】:
我想获取未加密的用户密码。如何得到这个?
public static string GetCurrentUserPassword(string userName)
{
MembershipProvider p = (MembershipProvider)Membership.Providers["Default"];
MembershipUser obj = Membership.GetUser(userName);
return obj.GetPassword();
}
obj type : [Telerik.Sitefinity.Security.Model.User] = User "user1", Id={59d9813c-f88e-4790-9f19-3145ba8347d1}, Provider="Default"
password : "+HmReh/mzvIIuvYsM7+XdEoeQhI="
【问题讨论】:
-
我想不出任何好的理由这样做。您永远不应该知道您的用户密码。如果您知道,黑客可能会知道您是否被入侵。
-
@KingCronus,我想写“忘记密码”页面。如果用户忘记密码想发送电子邮件。
-
所以您打算通过纯文本电子邮件向他们发送密码?坏主意 - 我会离开任何对我这样做的网站,删除我的帐户并且永远不会回去。为什么不给他们一种方法来重置它,而不是告诉他们它是什么。
-
@baros 当用户忘记密码时,应使用重置密码来保护他们免受外部攻击。如果用户的电子邮件被黑客入侵,那么黑客可以使用忘记密码链接来检索用户当前密码并访问该用户具有相同密码的任何其他站点。但是,如果它只是返回一个新密码,那将不是问题。
-
@KingCronus,是的,我打算用纯文本发送。如何创建您所指的结构?