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