在我的C#MVC项目中,用户可以访问修改视图以自定义其页面外观(他们可以编辑视图cshtml并使用Razor引擎)。
如何限制视图引擎访问某些命名空间,如System.IO,System.Sql?
我计划从用户中删除标记中的“System.XXX”,但默认情况下会导入一些名称空间,如System.IO。所以用户仍然可以运行一些危险的命令,如File.Delete ......
同样,我如何限制用户只能编辑CSHTML和一些名称空间而不是所有namspace?
答案 0 :(得分:2)
在本主题中: Strange automatic namespace imports in my Razor views
robotnik:所以答案是:在Razor视图中,总是导入一些名称空间。这在配置中无法禁用,因为它在代码中是硬连线的。
但是 Nigel Whatling 通过从MvcWebRazorHostFactory继承一个类来找到答案。
谢谢大家:)