<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字段
答案 0 :(得分:2)
我看到你有enablePasswordReset="true"
,所以请使用正常路线。
答案 1 :(得分:2)
我在适当的场景中使用了上述配置(即passwordFormat =“Encrypted”)。以下代码用于使用指定的新密码重置用户的密码(反对生成新密码),以便cs代表可以在手机上询问用户输入新密码并为其更改密码,而不知道旧密码。
对user.ChangePassword的调用需要传递当前密码:
MembershipUser user = Membership.GetUser(userId);
user.ChangePassword(user.GetPassword(), newpw);
user.Password()以明文形式返回当前密码。
答案 2 :(得分:1)
没有。这是设计的。
答案 3 :(得分:1)
假设您确实配置了一个真实的连接字符串(而不是像示例中那样connectionStringName=""
),您可以在代码中使用它
Membership.GetPassword(username, "");
该方法可以抛出很多异常,例如,如果实际设置了密码答案,或者用户被锁定了。有关详细信息,请参见此处:
http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.getpassword.aspx
答案 4 :(得分:0)
通常,像这样的系统是使用单向加密设计的,以防止您正在尝试执行的操作。如果您正在使用该系统,最好创建自己的帐户而不是使用其他人的帐户。
答案 5 :(得分:0)
您需要加密密码,salt和加密密码的计算机上的machineKey
部分。
必须定义此部分,默认情况下不支持加密。因此,除非您在加密数据的服务器上工作,否则您需要从该计算机获取密钥。
可以在应用程序的web.config一直到c:\ windows \ microsoft.net中的根web.config之间的任何位置定义它们
所以 - 有钥匙,可以这么说。
如果您有权访问此部分,请不要在此处发帖,但请留言,我们可以谈谈解密。