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

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR&#160;ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...