我有一个UserNamePasswordValidator,它命中数据库以验证该请求对wcfclientcredentials有效。
我意识到每次打电话时我都不想打数据库。
缓存结果的最佳方法是什么?
即如果我已经知道用户名/通行证有效,为什么一遍又一遍地检查?
答案 0 :(得分:2)
虽然我同意mellamokb的评论,但如果你真的想做的话......
我会选择Dictionary<UserName, SecureString>
另外,您必须确保在密码更改的情况下更新字典
答案 1 :(得分:1)
您可以将username/password
缓存在dictionary
中,其中username
为关键字,password
为值。
Dictionary<string, string> userName_Pwd_Cache = new Dictionary<string, string>();
//caching username/password code
if(userName_Pwd_Cache.ContainsKey(userNameVar)) //let userNameVar is entered username
{
if(userName_Pwd_Cache[userNameVar] == passwordVar) //let passwordVar is entered passwords
{
//user authenticated
}
else
{
//authentication failed
}
}