WCF和PrincipalPermission

时间:2009-04-24 21:42:53

标签: wcf security authentication windows-identity principalpermission

我有许多服务将在NT Authority \ System的安全上下文中作为Windows服务运行(服务是基于NetTCP的)。存储在Active Directory中的六个组将被允许访问这些服务:

用户 代理 审批 管理员(三级管理员)

我知道我可以使用ServiceSecurityContext.Current.WindowsIdentity.Name来获取正在连接服务的用户。

我需要做的是在业务层验证传入的用户上下文是否能够访问特定服务,我希望它遵循我公司支持的旧应用程序使用PrincipalPermission传递它角色并使用Demand()方法来确保访问。

我想我最初的问题是,如果我传递PrincipalPermission的ServiceSecurityContext用户名和关联的角色(组),它将自动知道在幕后命中Active Directory,因为该服务在AD帐户的上下文中运行相同的域名?或者我应该做些什么特别的事情?

1 个答案:

答案 0 :(得分:2)

是的,当你要求一个角色时,它会调用IPrincipal.IsInRole。这将使用主体具有的任何实现。因此,如果它设置为Windows,它将完成所有工作以达到AD。