2011-05-13 84 views
0

我有一個UserNamePasswordValidator,它命中一個數據庫以驗證該請求對於wcfclientcredentials有效。UserNamePasswordValidator和緩存結果

我意識到我不想在每次打電話時都敲擊數據庫。

什麼是緩存結果的最佳方式?

即如果我已經知道用戶名/密碼是有效的,爲什麼一遍又一遍地檢查它?

+2

應用程序是否因數據庫命中而導致性能下降?如果沒有,請不要修理沒有損壞的東西。 – mellamokb 2011-05-13 19:06:21

回答

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 
      } 
    } 
2

雖然我mellamokb的評論表示贊同,但如果你真的瓦納做...

我會去Dictionary<UserName, SecureString>

另外,你必須確保你更新字典的情況下,密碼更改