【发布时间】:2018-06-29 12:48:17
【问题描述】:
设置
我的 WCF 网络服务在 Windows Server 2012 上的 IIS 8.0 上运行,在具有多个域的环境中:
- 服务器
- 老客户
- 新客户
应用程序池使用SERVER 域中的服务帐户运行(比如说SEVER\WsSvc01)。
我的 WCF 网络服务使用 PrincipalPermissionAttribute,如下所示:
[PrincipalPermission(SecurityAction.Demand, Role = "grp_WsUsers")]
public string Echo(string message)
{
return string.Format("{0:o}: {1}", DateTime.Now, message);
}
在两个客户端域中都有一个grp_WsUsers 活动目录组:
- CLIENT-OLD\grp_WsUsers
- 新客户\grp_WsUsers
问题
CLIENT-OLD 域中属于CLIENT-OLD\grp_WsUsers 成员的用户可以访问来自CLIENT-NEW 域的服务用户不能
解决方法
如果我明确包含这两个组,所有用户都可以访问该服务
[PrincipalPermission(SecurityAction.Demand, Role = "CLIENT-OLD\\grp_WsUsers")]
[PrincipalPermission(SecurityAction.Demand, Role = "CLIENT-NEW\\grp_WsUsers")]
public string Echo(string message)
{
return string.Format("{0:o}: {1}", DateTime.Now, message);
}
问题
这里发生了什么?如果我必须明确指定组,为什么它首先会起作用?如何解决两组之间的差异?
【问题讨论】:
标签: wcf iis windows-authentication principalpermission