Asp.net-Mvc-3
ASP.NET Membership - 登錄在本地工作,在 Azure 上失敗
我在一個 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* > :
<machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE" validationKey="PUT_VALIDATION_KEY_HERE" decryption="AES" validation="HMACSHA256" />您可以使用此機器密鑰生成器生成正確格式的隨機密鑰。