我有一个连接到 WCF 服务的 WPF 客户端,我想锁定某些功能,以便只有某些用户可以执行某些操作。 WCF 服务在执行服务方法时模拟客户端用户。操作系统为Windows XP。
我正在阅读 this question作为我调查将用户角色应用于我的应用程序功能的最佳方式的一部分(我想将用户分配给 AD 安全组,然后检查 IsInRole),并且担心缓存的权限将允许已减少权限的用户访问他们不再有权访问的功能。相反,我也担心升级了权限的用户将需要注销他们的 Windows 帐户,甚至可能必须重新启动 WCF 服务(最坏的情况)才能访问新功能。
确保客户端和服务器都能立即看到对 AD 安全组的更改的最简单方法是什么?
最佳答案
您始终可以实现自己的查询 AD 的成员资格提供程序。 这非常简单,您将确保所有权限评估都是准确的,或者至少完全符合您的要求。
如果您发现在每次评估时查询 AD 服务器在性能上“代价高昂”,您可以在客户端创建自己的缓存,您可以强制定期或按需刷新。 这个缓存可以像权限的索引列表(如字典)一样简单,您可以非常快速地查询它。
这是一篇关于如何与 AD 交互的好文章: http://www.codeproject.com/KB/system/everythingInAD.aspx
关于c# - 如何确保 IsInRole 检查不使用缓存的凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690822/