以下完美运行 (DOMAIN\DEVELOPERS
):
[PrincipalPermission(SecurityAction.Demand,Role="DEVELOPERS")]
public string Test()
{
return "Works..";
}
运行的用户是该组的成员,因此“当然”可以运行。对于名为 AdvisoryWcfUsers
的此 WCF 服务,我有另一个组,其中包含几个用户和组(在 AD 中;所以 DOMAIN\AdvisoryWcfUsers
)。我 100% 确定我是该组的成员,但尽管如此,我得到:
System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied
这不是错字,似乎是 IIS 没有权限查找这个新组。 DEVELOPERS
组是一个“旧”组,而 AdvisoryWcfUsers
是今天创建的,就是为了这个目的。有什么建议吗?
最佳答案
群组创建后您是否再次登录并成为群组成员? Windows 组是所谓的“子权限”,在登录时附加到您的安全 token 。因此,只有在登录后才能检测到组成员身份的任何更改(必须是域登录,而不是缓存登录!)。
关于c# - PrincipalPermission 仅适用于某些 AD 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497716/