问题标签 [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 投票
2 回答
640 浏览

wcf - WCF 服务中的错误处理

使用以下服务方法示例:-

当调用者不在正确的角色中时,如何从方法中获取错误。在设计时,错误在方法行(即公共字符串GetTest)上中断并且没有达到捕获。在运行时,它在我的 silverlight 应用程序中报告为未处理的错误(我也有 try.. catch 块)。似乎没有地方可以捕获错误,因为它永远不会进入 try 块!

0 投票
0 回答
714 浏览

silverlight - 将 WCF 服务移至 SSL 后,PrincipalPermission.Demand() 失败

我的 Silverlight/WCF 应用程序在每个服务方法中使用 PrincipalPermission 来确保用户经过身份验证。当我将所有内容都配置为 HTTP 时,这工作得很好,但是一旦我将服务端点/绑定配置为支持 HTTPS (SSL),当我调用我的 PrincipalPermission 对象的 Demand() 方法时,就会抛出异常。

编辑:我应该提到我正在使用 IIS 7.5 Express 来托管和调试这个项目。

这是检查以确保用户已通过身份验证的方法。它是从我的每个服务方法中调用的:

}

执行结果是“请求主体失败”。

以下是我的 web.config 文件的重要部分:

这是客户端配置:

我希望有人可以在这里指出正确的方向。 同样,在我为 SSL 配置我的服务之前,此配置工作得很好。有什么想法吗?

谢谢,

-斯科特


我以为我找到了问题,并回答了我自己的问题——但我错了。仍然有同样的问题。

0 投票
2 回答
1958 浏览

c# - 海拔需求不适用于winforms应用程序中的方法

我有一个 winforms 应用程序,可以循环安装其他应用程序。这适用于 Windows 7 中的管理员帐户,但我在标准帐户中遇到严重问题 - 该应用程序需要提升才能写入“Program Files(x86)”文件夹。

因此,我尝试使用以下代码在 winforms c# 应用程序中请求提升特定方法(运行安装程序的方法):

收到错误后,从网上得知,在调用带有上述属性的方法之前,需要这样写:

我这样做了,该方法仍然抛出以下错误:

请求主体权限失败。

逐步调试通过 SetPrincipalPolicy 行,但是,当它到达具有 Demand 属性的方法时,它只是抛出相同的错误,就好像 SetPrincipalPolicy 从未存在过一样。

我在正确设置 Demand 属性时做错了吗?

先感谢您。

稍后编辑:这里要求的是在静默安装应用程序时应该触发提升请求的代码(但不起作用):

我需要的是,如果应用程序是在 Windows 标准用户下运行的,那么该过程会弹出一个对话框,询问管理员的用户名和密码。只有上面以编程方式启动的进程应该以管理员身份运行,主应用程序本身可以保持为标准用户。

0 投票
1 回答
414 浏览

.net - 为什么 PrincipalPermission(Attribute) 不尊重身份验证类型?

IIdentity接口暴露AuthenticationType了我想考虑的属性,因为如果用户使用 x509 或基本用户名/密码身份验证登录,情况会有所不同,你知道:

但我不能。此外,两者PrincipalPermission都是PrincipalPermissionAttribute密封的(谢谢大家),所以我无法添加我需要的功能。这是出于某种特殊原因还是仅仅是设计缺陷?任何想法如何解决?

0 投票
1 回答
1898 浏览

wcf - WCF CustomRoleProvider 和原则权限

编辑:我认为该问题可能与以下问题有关,因为一旦 WCF 服务移至 SSL ,我也在使用 SSL PrincipalPermission.Demand() 失败

我正在开发一组安全的 Web 服务,我已经实现了 CustomRoleProvider 和 CustomMembershipProvider 以对用户进行身份验证。

这很好用,但是如果用户未通过身份验证,我想限制对大多数服务调用的访问。

我计划使用以下内容来完成此任务

但是,这似乎没有检测到用户何时通过身份验证并且总是引发安全异常。我不确定我做错了什么。

在我的身份验证服务调用中,我检查成员资格提供程序是否返回 true 并设置表单身份验证 cookie。

我在我的网络配置中设置了服务授权,如下所示:

任何帮助将不胜感激,谢谢

编辑:

我对该问题进行了进一步调查,发现 Principal 设置正确。我有以下服务方法,在其中我得到了委托人并检查用户是否处于正确的角色,有效地执行标签在开始时所做的事情。

此方法当前每次都会引发 SecurityException,但是如果我在开始时注释掉主体权限,则该方法将起作用并返回 true。

0 投票
1 回答
757 浏览

asp.net - ASP.Net Membership principal 权限问题

我遇到了PrinciplePermissionAttribute导致异常的问题。我在方法上具有该属性的任何页面在Load初始登录后立即引发异常。

这会引发异常Request for principal permission failed

如果我删除它,页面加载正常,我可以导航到另一个具有相同属性的页面,并且它可以完美运行。此外,如果我使用会员系统Roles.IsUserInRole()功能,我没有问题。

我注意到在初次登录后,我Thread.CurrentPrincipal的类型是类型GenericPrincipal而不是RolePrincipal. 随后的请求显示正确的类型来代替泛型。我试图Global.asax在事件中强制在文件中执行此操作,PostAuthenticate但 asp.net 似乎在GenericPrincipal发生这种情况后进行设置。

关于如何解决这种行为的任何想法,或者我是否坚持使用该Roles.IsUserInRole()方法?

更新在这里
找到了对管道中发生的事情的一些解释后,我可以看到为什么在其中更改它没有帮助。我之前有一个原型项目,我用它进行了测试,但我无法在那里重现它。我确实想知道它是否与项目类型有关。原型是一个网站项目,而有问题的是一个 Web 应用程序项目。Global.asax

我确实认为将其GenericPrincipal更改为RolePrincipal但仅在初始请求已处理后才更改为奇怪。所以很难说它没有像它一样在我的“Page_Load”执行之前不会发生。

0 投票
1 回答
1548 浏览

c# - PrincipalPermission 仅适用于某些 AD 组

以下工作完美(DOMAIN\DEVELOPERS):

运行的用户是该组的成员,因此“当然”它可以工作。我有另一个组,用于名为 的 WCF 服务AdvisoryWcfUsers,它包含几个用户和组(在 AD 中;所以DOMAIN\AdvisoryWcfUsers)。我 100% 确定我是这个小组的成员,但无论如何,我得到:

System.ServiceModel.Security.SecurityAccessDeniedException:访问被拒绝

这不是一个错字,只是似乎 IIS 没有权限查找这个新组。该DEVELOPERS组是一个“旧”组,而AdvisoryWcfUsers今天是为此目的而创建的。有什么建议么?

0 投票
2 回答
2500 浏览

wcf - WCF:具有 PrincipalPermissions 的自定义 RoleProvider:似乎没有受到打击/如何调试它?

我有一个继承 RoleProvider 的自定义角色提供程序。在网络应用程序中,这可以正常工作,没有问题。

但是,我也在 WCF 服务中使用它,并且在进入它时遇到了很大的问题。以至于我怀疑它根本没有被击中。如果我完全打开任何主体权限,我会被拒绝访问,并且堆栈跟踪完全没有帮助。甚至 WCF 跟踪也对确定发生了什么非常有帮助。

我知道 TennisRoleProvider 使用它的默认构造函数并通过测试验证了它的方法。这似乎是一个集成问题。

所以片段...

编辑:我已经将角色提供者移动到服务程序集中,因为阅读了一些关于需要涉及 GAK 和密钥(需要完全信任运行)的内容。我走了那条路,但事情仍然没有奏效,所以决定简单地将东西移到服务项目中以简化。仍然没有喜悦。

然后在服务方法上我有以下内容(Roles.Family admin 是一个字符串)

所以有两个问题...... 1)我做错了什么?2) 我怎样才能进入 WCF 以确定到底出了什么问题?

干杯

日志中错误的堆栈跟踪如下注意其中的权限与我上面使用的权限不同(Namley 'authorized' 而不是 'FamilyAdmin'。但实际上这些值匹配并且用户拥有正确的权限。

编辑:根据下面的答案,我在构造函数中添加了几行代码——虽然它们没有实现任何目标,但鼓励我询问线程静态类。

编辑:给出一个关于日志更新日志的问题,以表明它确实来自日志 - 或者我很困惑;)

TennisRoleProvider 在其非公共成员中被它引用 - 此外,当我覆盖 Name 以使其返回某些内容时,我会认识到这是由它返回的。

0 投票
3 回答
1617 浏览

c# - Global.asax 错误处理程序或自定义 IHttpModule 错误处理程序未捕获到未处理的异常

我有一个类 (DPCal_EventMove) 的方法,我想限制对使用角色的访问。我有一个 Global.asax.cs 错误处理程序和一个自定义 IHttpModule 错误处理程序,旨在捕获未处理的异常并将它们传送到 GlobalExceptionHandler.aspx,它检查错误是否是源自失败的 PrincipalPermission 检查的 SecurityExceptions。由于某种原因,由 PricipalPermission-decorated 方法引起的未处理异常未通过我的任何一个错误处理程序进行路由。我的问题是:这个异常被路由到哪里以及如何捕获和处理它?

下面是我的 Global.asax.cs 文件:

下面是我的自定义 IHttpModule 处理程序:

永远无法达到 GlobalExceptionHandler.aspx 上的 Page_Load。

0 投票
1 回答
681 浏览

c# - 在类级别应用 PrincipalPermission 时出现权限错误

当我尝试上面的代码时,我没有收到编译时错误并且没有应用权限。即使对于有效角色,我也无法执行任何代码方法。即使对于有效角色,我也会收到权限被拒绝错误。

这适用于方法级别的声明,但不适用于类级别的声明。

请告诉我。谢谢