如何确保IsInRole检查未使用缓存凭据

时间:2011-07-14 09:03:01

标签: c# wcf active-directory wcf-security windows-principal

我有一个连接到WCF服务的WPF客户端,我想锁定一些功能,以便只有某些用户才能执行某些操作。 WCF服务在执行服务方法时模拟客户端用户。操作系统是Windows XP。

我正在阅读this question,作为调查应用用户角色到我的应用程序中的功能的最佳方式的一部分(我想将用户分配给AD安全组,然后检查IsInRole),我担心缓存权限将允许已减少权限的用户访问他们不再拥有权限的权限。相反,我也担心升级了权限的用户需要注销他们的Windows帐户,甚至可能必须重新启动WCF服务(最糟糕的情况)才能访问新功能。

确保客户端和服务器都能立即看到AD安全组的更改的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

您始终可以实施自己的会员提供商来查询AD。 这很简单,您将确保所有权限评估都是准确的,或者至少完全按照您的意愿进行。

如果您发现在每次评估时查询AD服务器的性能“昂贵”,您可以在客户端上创建自己的缓存,您可以强制定期刷新或按需刷新。 此缓存可以像您可以快速查询的权限的索引列表(如字典)一样简单。

这是一篇关于如何与AD互动的好文章: http://www.codeproject.com/KB/system/everythingInAD.aspx