我有一個UserNamePasswordValidator,它命中一個數據庫以驗證該請求對於wcfclientcredentials有效。UserNamePasswordValidator和緩存結果
我意識到我不想在每次打電話時都敲擊數據庫。
什麼是緩存結果的最佳方式?
即如果我已經知道用戶名/密碼是有效的,爲什麼一遍又一遍地檢查它?
我有一個UserNamePasswordValidator,它命中一個數據庫以驗證該請求對於wcfclientcredentials有效。UserNamePasswordValidator和緩存結果
我意識到我不想在每次打電話時都敲擊數據庫。
什麼是緩存結果的最佳方式?
即如果我已經知道用戶名/密碼是有效的,爲什麼一遍又一遍地檢查它?
您可以將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
}
}
雖然我mellamokb的評論表示贊同,但如果你真的瓦納做...
我會去Dictionary<UserName, SecureString>
另外,你必須確保你更新字典的情況下,密碼更改
應用程序是否因數據庫命中而導致性能下降?如果沒有,請不要修理沒有損壞的東西。 – mellamokb 2011-05-13 19:06:21