c# - 限制 View 中的内联代码具有与模型相关的代码以外的代码

标签 c# asp.net-mvc asp.net-mvc-4 razor

我想限制我的 .cshtml 文件,以便内联 C# 代码只能关联到当前模型。所以我想限制允许的命名空间或类似的东西。

背景是我需要应用程序用户(系统管理员 - 而不是网络访问者)编辑 View 文件夹。 我的一些客户想要展示这些图像,而有些则不想。 因此,我需要控制他们可以做什么,而他们不能做什么

<span>
    title
@{
   MyApp.Database.DeleteAll()
   or
   System.File.Read()
}

但我希望他们能够做到

@foreach(var img in @Model.Images){
      <img src="@img" />
}

用户将无法访问服务器或其他任何东西(如 webconfig 等)。他们将通过 Web 界面编辑 .cshtml 文件。

假设我有一个页面,其中显示了一组已上传的图片。 一些管理员希望将图像显示为 slider ,其他人则希望将图像显示为简单的 ul 这不会对应用程序的其余部分产生任何影响,因为一切都是松散连接的。

最佳答案

这是不可能的,并且会造成巨大的安全漏洞,因为 Razor 允许运行任何 C# 代码。

您可以改为让他们在不同的模板引擎中创建模板。例如有 Handlebars for C#这应该允许做你需要的。

关于c# - 限制 View 中的内联代码具有与模型相关的代码以外的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144509/

相关文章:

属性的 C# XML 序列化

asp.net-mvc - 与 ASP.net MVC 中 Ajax 请求中的错误处理有关的疑问

validation - 使用 Kendo UI 在 ASP MVC 中进行必填字段验证

c# - 列出 IP 子网中的所有地址

javascript - 在 Xamarin 中从 C# 对象调用 JavaScript

c# - Entity Framework - 虚拟属性 Null

asp.net - 使用 Moq 对 View 属性进行单元测试

asp.net-mvc - 我该如何处理Elmah本身引起的异常?

c# - 在数据库中创建新项目后,asp.net MVC 4 重定向到详细信息?

javascript - 使用 .net 发布大文件后出现 404