asp.net-mvc-3 – ASP.NET成员资格 – 本地登录,在Azure上失败

我在一个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以正确的格式生成随机密钥。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...