aspnet_Usersから実際のパスワードを取得する方法(暗号化されています)
メンバーシップを使用せずに、通常のselectステートメントが必要で、パスワードを実際のパスワードに変換します。例として次のコードを試しました。
static void Main(string[] args)
{
using (PMAEntities context = new PMAEntities())
{
var Query = from U in context.aspnet_Users
join M in context.aspnet_Membership on U.UserId equals M.UserId
where U.UserName == "admin"
select new
{
password = (string)M.Password,
salt = (string)M.PasswordSalt
};
if (Query != null)
{
// Convert the input password to bit array
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] inputpassword= encoding.GetBytes("123456");
byte[] salt = encoding.GetBytes(Query.FirstOrDefault().salt);
byte[]commingpass = encoding.GetBytes(Query.FirstOrDefault().password);
// Combine the two arrays
byte[] c = new byte[inputpassword.Length + salt.Length];
System.Buffer.BlockCopy(inputpassword, 0, c, 0, inputpassword.Length);
System.Buffer.BlockCopy(salt, 0, c, inputpassword.Length, salt.Length);
//Comparer
if(c.SequenceEqual(commingpass))
{
Console.WriteLine("Hiiiiiiiiiii");
}
Console.ReadLine();
}
}
}
よろしくお願いします