2009-07-01 32 views
1

當我運行Roles.GetRolesForUser(「用戶名」)的角色被正確返回,但是如果我添加用戶到AD的作用,結果顯示不出來,直到我的日誌用戶從他們的系統中,並讓他們重新登錄。Roles.GetRolesForUser()結果會被緩存

有沒有什麼辦法讓系統每次重新檢查?

回答

3

如果您使用的是內置角色提供商,有在web.config更改此設置:cacheRolesInCookie。我相信這是默認的。

當然,這需要一個數據庫查找每一個角色查找發生(如果你使用過程中的DB)的時間,所以這可能不是一個好主意。 否則,我認爲你必須編寫自己的提供者,這很容易。只需創建一個從RoleProvider繼承的新類,並提供您自己的實現。你可以在你的實現中處理緩存(或不)。

如果你想看到內置的角色提供的內部運作,下載反射器。這是一個很棒的工具。

編輯

對不起,我重讀,發現你正在使用AD。所以,你應該在web.config中對提供者設置進行更改。