2
我寫我自己的定義成員資格提供,但使用的會員供給者自己EncodePassword方法,如下所示是:成員資格提供EncodePassword方法.NET 4.0
internal string EncodePassword(string pass, int passwordFormat, string salt)
{
if (passwordFormat == 0) // MembershipPasswordFormat.Clear
return pass;
byte[] bIn = Encoding.Unicode.GetBytes(pass);
byte[] bSalt = Convert.FromBase64String(salt);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
byte[] bRet = null;
Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
if (passwordFormat == 1)
{ // MembershipPasswordFormat.Hashed
HashAlgorithm s = HashAlgorithm.Create(Membership.HashAlgorithmType);
bRet = s.ComputeHash(bAll);
} else
{
bRet = EncryptPassword(bAll);
}
return Convert.ToBase64String(bRet);
}
我現在知道打獵逛了幾個小時後,在.NET 4中,使用的算法是HMACSHA256。我知道我需要一個密鑰才能正確工作。
我的問題是如何做到這一點?
是否將密鑰放在配置文件中並以某種方式引用它?
任何幫助,將不勝感激!
謝謝。