2

これは WebMatrix.WebData.SimpleMembershipProvider.GetHashedPasswordのソース コードです。

   private string GetHashedPassword(IDatabase db, int userId)
           {
               var pwdQuery = db.Query(@"SELECT m.[Password] " +
                                       @"FROM " + MembershipTableName + " m, " + SafeUserTableName + " u " +
                                       @"WHERE m.UserId = " + userId + " AND m.UserId = u." + SafeUserIdColumn).ToList();
               // REVIEW: Should get exactly one match, should we throw if we get > 1?
               if (pwdQuery.Count != 1)
               {
                   return null;
               }
               return pwdQuery[0].Password;
           }

http://aspnetwebstack.codeplex.com/SourceControl/latest#src/WebMatrix.WebData/SimpleMembershipProvider.csで見つけることができます

そして.netリフレクターによってWebMatrix.WebData.dllをチェックしてください

コードを確認すると、クエリを実行して User テーブルが自分自身を乗算し、Password フィールドを取得していることがわかります。簡単な方法は次のとおりです。

SELECT m.Password FROM [Users] m, [Users] u
 WHERE m.[UserID] = 1 AND m.UserID = u.UserID
4

1 に答える 1