Asp.net会员密码格式

时间:2012-04-06 07:20:47

标签: asp.net asp.net-membership membership-provider

我有使用asp.net会员资格的应用程序。不幸的是,用户密码是使用PasswordFormat clear存储的。我想将密码更改为哈希格式而不要求用户重新设置它们。另一个限制是无法更改Membership表中的UserId。有谁知道怎么做?

2 个答案:

答案 0 :(得分:0)

您可以通过配置会员提供商设置&来加密密码。 web.config中的键

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
passwordStrengthRegularExpression="^([1-zA-Z0-1@.\s]{1,255})$"
applicationName="NitinJS" />
</providers>
</membership>

答案 1 :(得分:0)

在你的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文章中有一个“密钥生成器”代码段,运行两次并将其推送到您的web.config中:

<system.web>
    <machineKey  
    validationKey="<blah>"           
    decryptionKey="<blah>"
    validation="SHA1"
    decryption="AES"
    />
</system.web>