阻止程序集更改 IPrinicpal

发布于 2024-09-17 19:13:55 字数 253 浏览 9 评论 0原文

我的应用程序加载了很多不同的插件程序集。每个插件都可以将自己的服务添加到IoC容器中,也可以使用主应用程序提供的所有服务。

我正在从自制的安全解决方案转向使用 CAS(PrincipalPermissionAttribute 和从 CodeAccessSecurityAttribute 派生的自己的解决方案)。

我可以阻止加载的程序集更改 System.Threading.Thread.CurrentPrincipal (并以这种方式绕过我的安全检查)吗?

My application loads a lot of different plugin assemblies. Each plugin can add their own services into the IoC container and can also use all services provided by the main application.

I'm moving from a home brewn security solution to use CAS (PrincipalPermissionAttribute and an own one derived from CodeAccessSecurityAttribute).

Can I prevent the loaded assemblies from changing System.Threading.Thread.CurrentPrincipal (and in that way circumvent my security checks)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2024-09-24 19:13:55

您需要拒绝 SecurityPermission\ControlPrincipal 对插件的权限。例如,可以通过将它们加载到应用程序域中来完成此操作,该应用程序域拒绝向所有不具有您的强名称签名的代码授予此权限。请参阅 http://blogs.msdn.com/b /shawnfa/archive/2005/08/08/449050.aspx 了解此方法的示例。

You'll need to deny SecurityPermission\ControlPrincipal permission to the plugins. This can be done, for example, by loading them in an appdomain which denies this permission to all code that does not possess your strong name signature. See http://blogs.msdn.com/b/shawnfa/archive/2005/08/08/449050.aspx for an example of this approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文