问题标签 [principalpermission]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

c# - 如果应用于类,方法上的 PrincipalPermission 不起作用

我的代码看起来像这样:

如果我尝试运行Foo.Bar();,如果我没有 RoleA,它将失败,但从不检查 RoleB。无论我是否有 RoleB,只要我有 RoleA,它就可以工作。

如果我[PrincipalPermission(SecurityAction.Demand, Role = "RoleA")]从类定义中删除,那么它会按预期检查 RoleB。

我四处搜索,发现在两个不同的 SO 问题(此处此处)中提到的这个确切问题在任何一种情况下都没有答案。有一条评论指向一个旧的 Microsoft Connect 链接,据说该链接包含答案,但没有评论或答案实际上说明了问题所在。

我真的非常感谢任何帮助。

0 投票
1 回答
203 浏览

c# - 希望 REST 服务上的 PrincipalPermission SecurityException 返回 403,而不是 400 Bad Request

我有一个装饰有 PrincipalPermission 要求的 RESTful (WCF) 服务。403 FORBIDDEN如果用户不担任该角色,我希望得到响应,而是得到一个400 BAD REQUEST,而不是。仔细想想,这是有道理的——SecurityException当委托人不担任该角色时,需求会触发;<authorization>它与通过web.config 中的标记授予访问权限不同。

但是,a400 BAD REQUEST没有意义......请求没有格式错误,我只是没有权限拨打电话。响应意味着我可以400修复请求并重试,但这永远不会成功。

我如何拦截或将 a 映射SecurityException到更合适的响应(最好403 FORBIDDEN)?


装饰方法:

回复:

0 投票
1 回答
141 浏览

wcf - PrincipalPermissionAttribute 要求来自多个域的相同角色

设置

我的 WCF 网络服务在 Windows Server 2012 上的 IIS 8.0 上运行,在具有多个域的环境中:

  • 服务器
  • 客户老
  • 新客户

应用程序池使用SERVER域中的服务帐户运行(比如说SEVER\WsSvc01)。

我的 WCF webservice 使用PrincipalPermissionAttribute这样的:

grp_WsUsers两个客户端域中都有一个活动目录组:

  • CLIENT-OLD\grp_WsUsers
  • 新客户\grp_WsUsers

问题

属于该CLIENT-OLD域成员的域中的用户可以访问该域中的用户CLIENT-OLD\grp_WsUsers 不能访问的服务CLIENT-NEW

解决方法

如果我明确包括这两个组,所有用户都可以访问该服务

问题

这里发生了什么?如果我必须明确指定组,为什么它首先会起作用?如何解决两组之间的差异?