Asp.net-Membership
自動生成的密鑰不支持散列或加密密碼
我創建了一個會員提供程序並將我的 web.config 更改為
<membership defaultProvider="MyMembershipProvider"> <providers> <clear/> <add name="MyMembershipProvider" type="Khafan.Providers.SqlMembershipProvider" connectionStringName="KhafanConnectionString" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" passwordStrengthRegularExpression="" passwordFormat="Hashed" enablePasswordReset="true" enablePasswordRetrieval="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" /> </providers> </membership>但是現在,每當我嘗試瀏覽到 ASP.Net 配置的安全頁面時,都會出現以下錯誤:
自動生成的密鑰不支持散列或加密密碼
在我的數據庫中,我為我的 PK 使用了 Identity。我不知道這是不是問題。但如果是,我該如何解決?我不想更改身份值。
謝謝。
這是因為您正在對密碼進行雜湊處理,但尚未在 web.config 中設置特定密鑰。這篇MSDN 文章中有一個“密鑰生成器”片段,執行它兩次並將它們推到你的 web.config 中:
<system.web> <machineKey validationKey="<blah>" decryptionKey="<blah>" validation="SHA1" decryption="AES" />那應該可以解決您的問題。之所以這樣,是因為否則您可以將您的會員數據庫/應用程序帶到另一台機器上,並且您的密碼都不起作用,因為自動生成的機器密鑰會有所不同:-)