我有许多服务将作为Windows服务在NT Authority\System的安全上下文下运行(这些服务是基于NetTCP的)。Active Directory中存储的六个组将被允许访问这些服务:
用户、代理、批准者、管理员(三级管理员)
我知道我可以让正在使用ServiceSecurityContext.Current.WindowsIdentity.Name.连接到该服务的用户
我需要做的是在业务层验证传入的用户上下文是否能够访问特定的服务,我希望它遵循我公司支持的旧应用程序,该应用程序使用PrincipalPermission向其传递角色并使用Demand()方法来确保访问。
我想我最初的问题是,如果我向PrincipalPermission传递ServiceSecurityContext用户名和相关的角色(组),它是否会自动知道在后台访问Active Directory,因为该服务是在相同域上的AD帐户的上下文下运行的?或者有什么特别的事情我应该做的?
发布于 2009-04-24 21:45:32
对,当你需要一个角色时,它会调用IPrincipal.IsInRole。这将使用主体拥有的任何实现。因此,如果它被设置为Windows,它将完成所有的工作,以访问AD。
https://stackoverflow.com/questions/787683
复制相似问题