加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET:跨应用程序的表单身份验证:匹配密码加密设置

发布时间:2020-12-16 10:00:15 所属栏目:asp.Net 来源:网络整理
导读:我有两个网站,他们都在自己独立的ASP.NET身份验证数据库中创建用户.下面是两者的Web.configs.我还使两个解决方案上的aspnet_Applications数据库记录相同.当我创建用户时,加密的密码不相同,密码盐也不相同. 当两个系统具有相同的用户名和密码时,任何想法如何
我有两个网站,他们都在自己独立的ASP.NET身份验证数据库中创建用户.下面是两者的Web.configs.我还使两个解决方案上的aspnet_Applications数据库记录相同.当我创建用户时,加密的密码不相同,密码盐也不相同.

当两个系统具有相同的用户名和密码时,任何想法如何使两个网站创建相同的密码哈希?

<configuration>
  <system.web>
    <authentication mode="Forms" >
      <!-- The name,protection,path,validationKey,validation,decryptionKey,and decryption attributes must be identical across all applications. 
      -->
      <forms loginUrl="~/Account/Login"
             name=".ASPXAUTH" 
             protection="All"  
             path="/" 
             domain="contoso.com" 
             timeout="2880"
             requireSSL="false" 
             cookieless="UseCookies" 
             enableCrossAppRedirects="true" />
    </authentication>
    <!-- Validation and decryption keys must exactly match and cannot
         be set to "AutoGenerate". The validation and decryption
         algorithms must also be the same. -->
    <!-- The validationKey is not wrapped in the solution -->
    <!-- These keys are examples -->
    <machineKey
         validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D940
                        1E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51
                        F17C529AD3CABE" 
         decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" 
         validation="SHA1"
         decryption="Auto" />
  </system.web>
</configuration>

解决方法

它听起来像你正在使用的SqlMembershipProvider生成一个随机的128位值作为盐.即,它将用户密码作为安全措施进行哈希处理时包含此值.为了确保两个独立系统生成相同的哈希,您需要确保同一用户的PasswordSalt列值相同. MembershipUser上没有用于设置PasswordSalt的属性.这意味着您必须直接转到数据库进行设置,使用此属性构建自定义MembershipUser,并能够保存它或构建提供此功能的自定义类或方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读