【问题标题】:Restrict view engine to access some namespaces in Microsoft MVC限制视图引擎访问 Microsoft MVC 中的某些命名空间
【发布时间】:2014-03-07 19:33:44
【问题描述】:

在我的 C# MVC 项目中,用户可以修改视图以自定义其页面外观(他们可以编辑视图 cshtml 并使用 Razor 引擎)。

如何限制视图引擎访问某些命名空间,如 System.IO、System.Sql ?

我计划从用户的标记中删除“System.XXX”,但默认情况下会导入一些命名空间,例如 System.IO。所以用户仍然可以运行一些危险的命令,比如 File.Delete...

再说一次,我怎样才能限制用户只编辑 CSHTML 和一些命名空间而不是所有命名空间?

【问题讨论】:

  • 我遇到了同样的问题。在我的一个项目中,我应该授予用户编辑视图的权限,但其中一位用户添加了一些危险代码并通过 System.IO 命令删除了我的文件。 (他在 Razor 块中添加了代码)

标签: asp.net-mvc


【解决方案1】:

在本主题中: Strange automatic namespace imports in my Razor views

robotnik:所以答案是:在 Razor 视图中,总是会导入一些命名空间。这不能在配置中禁用,因为它在代码中是硬连线的。

但是 Nigel Whatling 通过从 MvcWebRazorHostFactory 继承一个类找到了答案。

谢谢大家:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2017-08-26
    • 1970-01-01
    • 2016-07-07
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多