是否可以限制某些 .NET 功能/类的代码访问?
例如,我的 MVC CMS 有插件模块。我不希望第 3 方模块能够直接使用 File 类。我想将它包装在一个 API 中,以便模块只能访问它自己指定的“根”文件夹(沙箱)中的文件。否则,模块将拥有对整个服务器的文件访问权限,包括 CMS 系统文件。
有没有办法限制某些命名空间使用框架的特定功能?还是我应该采取不同的方法?
给你一个概述:
CMS 命名空间是MyCms
所有模块都采用命名空间MyCms.Module.xxxxx
模块只是标准 MVC 结构,它们被带入名称 main MVC 命名空间,并且自动设置路由以将请求路由到模块控制器。
因此,这些模块具有对 ASP.NET 框架的默认访问权限。如果可能的话,我希望能够限制 MyCms.Module.xxxxx 命名空间能够做某些事情。
我在这里采取了错误的方法吗?老实说,我并不热衷于更改基础架构,但如果我不能正确保护主要 CMS 基础架构免受顽皮模块的影响,我可能会被迫这样做。