【发布时间】:2015-11-13 14:41:56
【问题描述】:
我正在针对一些使用 System.EnterpriseServices 并在 .NET Framework 2.0 中编译的旧 .NET 程序集进行开发。我在某些情况下收到“请求主体权限失败”异常,但在其他情况下没有。例如,当
时,代码可以正常工作- 我从 xunit runner test in.net 4.5.1 运行它
- 我在 IIS 中也将它作为 web 服务运行在 .net 4.5.1 中
- 我从针对 .net 2.0 构建的 Windows 窗体应用程序运行它
但是当我从 Windows 窗体应用程序 .net 4.5.1 运行它时,它会引发异常。在这种情况下,我得到了提到的异常和 FirstPermissionThatFailed。<IPermission class="System.Security.Permissions.PrincipalPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1"><Identity Authenticated="true" Role="1,50000,50750,50751:Execute"/>
</IPermission>
我对遗留 API 进行了逆向工程,发现这些函数具有以下属性[PrincipalPermission(SecurityAction.Demand,Role="1,50000,50750,50751:Execute")]
我知道这个问题可能是由对代码访问安全性所做的重大更改引起的,但我不知道具体是什么,所以我有两个问题:
- 此角色 ID 映射到 1,50000,50750,50751 的实际角色
- 为什么当从 resharper xunit 测试运行器调用代码时没有触发异常?就像它在不同的安全上下文中运行一样?
谢谢!
【问题讨论】:
标签: c# .net legacy com+ code-access-security