我有使用 asp.net 成员身份的应用程序。不幸的是,用户密码是使用 PasswordFormat clear 存储的。我想将密码更改为散列格式而不要求用户再次设置他们的密码。另一个限制是 Membership 表中的 UserId 不能更改。有谁知道该怎么做吗?
最佳答案
在你的 web.config 中去
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider"
type="MyProviders.SqlMembershipProvider"
connectionStringName="MyConnectionString"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="4"
passwordStrengthRegularExpression=""
passwordFormat="Hashed"
enablePasswordReset="true"
enablePasswordRetrieval="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true" />
</providers>
</membership>
在这个 MSDN 中有一个“ key 生成器”片段文章,运行它两次并将它们推送到你的 web.config 中:
<system.web>
<machineKey
validationKey="<blah>"
decryptionKey="<blah>"
validation="SHA1"
decryption="AES"
/>
</system.web>
关于Asp.net成员(member)密码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10040416/