我可以从数据库中获得解密的密码吗?
<add name="LDSAMembers"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName=""
applicationName=""
requiresUniqueEmail="true"
passwordFormat="Encrypted"
minRequiredPasswordLength="6"
enablePasswordReset="true"
enablePasswordRetrieval="true"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="15"
requiresQuestionAndAnswer="false"
minRequiredNonalphanumericCharacters="0" />
我需要解密的密码在登录system.i找到密码,并passwordsalt场数据库我可以从数据库中获得解密的密码吗?
我在适当的情况下(即passwordFormat =“Encrypted”)使用了上述配置。以下代码用于使用指定的新密码重置用户的密码(因为它反对生成新密码),以便cs代表可以在电话中询问用户新密码并为其更改,而无需知道旧密码。
到user.ChangePassword调用需要当前密码传递:
MembershipUser user = Membership.GetUser(userId);
user.ChangePassword(user.GetPassword(), newpw);
user.password的()返回明文当前密码。
thnx为您的code.it工程 – Surajit 2010-09-23 10:15:40
我看你有enablePasswordReset="true"
,所以使用正常路线。
假设你确实有一个真正的连接字符串配置(而不是connectionStringName=""
就像在你的例子),你可以使用这个在你的代码
Membership.GetPassword(username, "");
有很多例外,可以由被抛出该方法,例如,如果密码回答是实际设置的,或者用户被锁定。在这里看到更多的细节:
http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.getpassword.aspx
为什么downvote? – Greg 2010-09-23 14:37:36
您将需要加密的密码,盐和从加密的密码机machineKey
部分。
必须定义此部分,它不是默认情况下支持加密。因此,除非您在加密数据的服务器上工作,否则您需要从该机器获取密钥。
它们可以在任何地方应用的web.config中一路下跌到根web.config之间定义c:\ WINDOWS \ microsoft.net
所以 - 有是关键,所以要说话。
如果您有权访问此部分,请勿在此发布,但请留下评论,我们可以谈论解密。
你不能通过数据库来完成,你需要通过.NET Membership API来完成。你真的在运行源代码还是试图以“黑匣子”方式获取密码? – Greg 2010-09-22 13:23:58