我在一个MVC3网站上工作,而ASP.NET成员资格中我有一个令人困惑的问题。我使用System.Web.Providers 1.0.1连接到sql Azure数据库。
现在,在运行在Compute Emulator下时登录的相同用户名/密码在Azure正常运行时失败。我可以看到它正在使用正确的数据库,因为会员数据库中的失败密码尝试计数器正在更新。
解决方法
感谢
this article by David Hoerster中的一些信息,我跟踪了它。问题是Azure上的默认密码散列算法与.NET 4.0默认值不同。它在Azure上设置为SHA1,HMACSHA256是4.0的新标准设置。
这可以通过在web.config中明确指定哈希类型来修复。如果您决定使用像HMACSHA256这样的方法,请确保还指定了机器密钥 – 否则将遇到类似的问题,因为自动生成的机器密钥将因服务器而异。
您需要更改的配置元素是< machinekey>在< system.web>下:
<machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE" validationKey="PUT_VALIDATION_KEY_HERE" decryption="AES" validation="HMACSHA256" />
您可以使用this machine key generator以正确的格式生成随机密钥。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。