我有一個網站,我正在從ASP.NET服務遷移到自定義提供商的會員資格。我想遷移現有用戶而不需要更改他們的密碼。如何以編程方式驗證散列ASP.NET服務密碼?
用戶密碼當前使用單向加密存儲。對我來說,唯一的選擇是使用與ASP服務相同的鹽和密碼,並使用我的自定義提供程序對它們進行驗證。
以下是用於當前使用ASP.NET服務對密碼進行哈希處理的配置。
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType="">
<providers>
<clear/>
<add connectionStringName="dashCommerce" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="dashCommerce" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" passwordStrengthRegularExpression="" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
我一直在拉我的頭髮,試圖編寫驗證密碼,防止由此配置生成的哈希密碼。
這是我到目前爲止。任何幫助將不勝感激。
private static string CreatePasswordHash(string Password, string Salt)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(Password + Salt, "SHA1");
}
當我使用這個例子時,我在'SettingManager'上得到一個錯誤。爲什麼? – 2010-09-21 10:07:40
對不起,一些應用程序特定的代碼。只是讓它說SHA1 – 2010-09-21 17:23:15