0

ここにセキュリティNoob。

asp.netメンバーシップからUmbracoメンバーシップに移行しようとしています。ただし、passwordFormat = "Encrypted"を使用すると、UmbracoメンバーシッププロバイダーとMicrosoftのSQLメンバーシッププロバイダーの間で暗号化が異なるように見えます。

2人のユーザーをSQLメンバーシッププロバイダーに登録すると(passwordFormat = "Encrypted")、エンコードされたパスワードが異なります。Umbracoプロバイダーで同じことをすると、同じになります。

すべての文字列が同じもの(正しいパスワード)に復号化されますが、umbraco DBのSQLメンバーシッププロバイダーによって暗号化されたパスワードを使用できないようです(ValidateUserは失敗します)。

誰かアイデアはありますか?

注:両方のサイトで同じmachineKeyを使用しています。

編集:UmbracoメンバーシッププロバイダーでEncryptPassword()とEncodePassword()を呼び出すと、異なる結果が得られます-EncodePasswordが正しい呼び出しです。ただし、EncodePasswordは.NETメンバーシッププロバイダーでは利用できません。これは私の混乱の別の部分でした。

4

2 に答える 2

1

パスワードはソルトされているため、異なる場合があります。メンバーシップデータベースのPasswordSalt列を確認してください。Base64文字列である必要があります。

于 2013-02-12T18:21:47.130 に答える
0

Umbracoのパスワードは、System.Security.Cryptography.HMACSHA1クラスを使用してハッシュされます。SQLメンバーシップユーザーのパスワードをHMACSHA1でハッシュして、それを適切に呼び出すことができると思います。

詳細については、ハッシュ化されたパスワードを使用したユーザーの追加を参照してください。

于 2013-02-06T16:02:49.670 に答える