public interface IAccountDao
{
string GetPassword(string id);
}
public interface IHash
{
string GetHashResult(string password);
}
public class AccountDao : IAccountDao
{
public string GetPassword(string id)
{
throw new NotImplementedException();
}
}
public class Hash : IHash
{
public string GetHashResult(string password)
{
throw new NotImplementedException();
}
}
public class Validation
{
private IAccountDao _accountDao;
private IHash _hash;
public Validation(IAccountDao dao, IHash hash)
{
this._accountDao = dao;
this._hash = hash;
}
public bool CheckAuthentication(string id, string password)
{
// 取得資料中,id對應的密碼
var passwordByDao = this._accountDao.GetPassword(id);
// 針對傳入的password,進行hash運算
var hashResult = this._hash.GetHashResult(password);
// 比對hash後的密碼,與資料中的密碼是否吻合
return passwordByDao == hashResult;
}
}
摘自:http://msdn.microsoft.com/zh-tw/library/dn148215.aspx