Asp.net-Mvc-3

ASP.NET Membership - 登錄在本地工作,在 Azure 上失敗

  • December 7, 2011

我在一個 MVC3 站點上工作,我遇到了一個令人費解的問題,即 ASP.NET 成員資格。我正在使用連接到 SQL Azure 數據庫的 System.Web.Providers 1.0.1。

就像現在一樣,在正確的 Azure 下執行時,在 Compute Emulator 下執行時登錄我的相同使用者名/密碼會失敗。我可以看到它使用了正確的數據庫,因為成員數據庫中的密碼嘗試失敗計數器正在更新。

感謝David Hoerster 的這篇文章中的一些資訊,我找到了它。問題是 Azure 上的預設密碼雜湊算法與 .NET 4.0 預設值不同。它在 Azure 上設置為 SHA1,而 HMACSHA256 是 4.0 上的新標准設置。

這可以通過在 web.config 中明確指定雜湊類型來解決。如果您決定使用 HMACSHA256 之類的方法,請確保您還指定了機器密鑰 - 否則您將遇到類似的問題,因為自動生成的機器密鑰會因伺服器而異。

您需要更改的配置元素是< system.web >下的*<machinekey* > :

&lt;machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE"
           validationKey="PUT_VALIDATION_KEY_HERE"
           decryption="AES"
           validation="HMACSHA256" /&gt;

您可以使用此機器密鑰生成器生成正確格式的隨機密鑰。

引用自:https://stackoverflow.com/questions/8415822