c# - 如何确保 IsInRole 检查不使用缓存的凭据

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

我有一个连接到 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/

相关文章:

c# - 在 NHibernate 环境中创建数据驱动的单元测试

c# - 需要 C# 正则表达式来匹配四位数字序列,但忽略后面的任何单个数字

.net - WCF中的后台线程

linux - 来自虚拟机的 Kerberos 身份验证 (Ubuntu)

asp.net - 如何在 Asp.net C# 中使用 LDAP 在 Active Directory 中搜索用户

c# - Xamarin ios 可达性不起作用

c# - Asp.net MVC 应用程序总是以 403 错误启动

c# - 使用 IIS 与第三方 dll 的 WCF 服务连接

wcf - 记录 ClientBase 对象接收的 SOAP 原始响应

sql - 更新 SQL Server 2008 登录 SID