1

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

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

我知道我能得到谁是连接到用户服务使用ServiceSecurityContext.Current.WindowsIdentity.Name。

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

我想我最初的问题是,如果我通过PrincipalPermission的ServiceSecurityContext用户名和相关角色(组),它会自动知道要在后台点击活动目录,因为该服务正在AD帐户的上下文中运行同一个域名?或者有什么特别的我应该做的?

回答

2

对,当你需要一个角色时,它会调用IPrincipal.IsInRole。这将使用委托人的任何实施。所以,如果它被设置为Windows,它将完成所有工作来击中AD。

+0

完美,我会相应地编写我的安全层。感谢您的快速响应! – RubyHaus 2009-04-24 21:47:47