改变机器钥匙会阻止现有用户的登录

 2023-02-16    337  

问题描述

我正在使用在Web.config中配置的会员提供程序,如此可以使用sql ce:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|\Users.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

和:

改变机器钥匙会阻止现有用户的登录

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordFormat="Hashed" applicationName="/" />
  </providers>
</membership>

如果我没有指定了MachineKey,则正确工作.

如果我将machineykey添加到Web.config,如下所示,那么现有用户无法再登录.但是我可以创建新用户,他们可以登录.

<machineKey validationKey="D829F10BE92767EC2F9E9FC53B2CF3952AAD386483D6E81E74B4BD84DBE66F71CA121581598FEA669892DBDE46507DF3C8028BBD8FD4E678557621141945171C" decryptionKey="D14678D1FB1777E10316163F6D97071CDF2A447FA15C172DC9525BA397BB0610" validation="SHA1" decryption="AES" />
<pages enableViewStateMac="true"/>

如果我删除了MachineKey,那么最初创建的用户可以再次登录,新创建的用户不能.

为什么添加machineKey更改现有用户是否可以登录,鉴于密码未加密密码?

推荐答案

默认情况下,.NET Framework 4使用SHA256.请在两个地方确保算法相同,并尝试SHA1或SHA256.

<membership ... hashAlgorithmType="SHA1">
  <providers>
    ...
  </providers>
</membership>

<machineKey ... validation="SHA1" decryption="AES" />

以上所述是小编给大家介绍的改变机器钥匙会阻止现有用户的登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33916.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。