2011-07-14 51 views
6

我有一個連接到WCF服務WPF客戶端,我要鎖定一些功能,以便只有特定的用戶可以執行某些操作。執行服務方法時,WCF服務模擬客戶端用戶。操作系統是Windows XP。我如何才能確保IsInRole檢查不使用緩存的憑據

我正在閱讀this question作爲我的調查的一部分,將我的應用程序中的用戶角色應用於功能的最佳方式(我想將用戶分配給AD安全組,然後檢查IsInRole),並擔心緩存的權限會允許減少了權限的用戶訪問他們不再有權限的功能。相反,我還擔心,誰都有過自己的權限升級的用戶將需要登錄他們的Windows帳戶的,甚至可以說WCF服務可能需要重新啓動(最壞的情況下),纔可以訪問新功能。

什麼是保證客戶端和服務器可以立即看到更改AD安全組最簡單的方法?

+0

這是很正常的,在角色成員的變化需要被傳播一段時間(包括用戶新的登錄)。例如,如果你有原發性和繼發性域控制器,它可能需要很長時間才能同步更改,並且用戶仍然可以從輔助控制器接收舊權限。 –

+0

@Ladislav Mrnka我想我將不得不忍受一些延遲,但我特別要避免使用本地緩存的權限(在用戶的計算機上)。我不知道WCF服務是否會自己請求在模仿用戶的同時檢查角色成員身份,或者是否從客戶端收到這些細節以及身份。 – Franchesca

回答

2

你總是可以實現一個查詢AD自己的成員提供。 這很容易,你可以確定所有的權限評估都是準確的,或者至少完全按照你想要的那樣進行。

如果發現查詢每個評價AD服務器上的性能,您可以創建客戶端,您可以強制定期或根據需要刷新自己的緩存「貴」。 此緩存可以像索引列表(如字典)一樣簡單,您可以非常快速地查詢權限。

下面是關於如何與廣告進行互動的好文章: http://www.codeproject.com/KB/system/everythingInAD.aspx

+0

好的,這是一篇非常全面的文章,謝謝!我想我將不得不試試看看查詢的速度有多慢,但在客戶端啓動時執行一次操作是最基本的,我需要插入我最擔心的安全漏洞:) – Franchesca

相關問題