【问题标题】:ValidateRequest="False" inside a master page母版页内的 ValidateRequest="False"
【发布时间】:2011-05-24 19:19:20
【问题描述】:

我的应用程序使用单个 aspx 页面,并根据 url 在母版页中动态加载。

我有一些安全的母版页,其中包含需要发布 html 的表单,因此我必须设置 ValidateRequest="false"。这当然在 @Master 指令中不可用,只有 @Page 指令。我不想在站点范围内禁用此安全设置,那么是否有其他方法可以在母版页级别完成此设置?

我指的是您在发布带有 html 标记的页面时收到的“从客户端检测到具有潜在危险的 Request.Form 值”错误消息。

我认为我也不能使用 web.config,因为它与为整个网站提供服务的物理 URL 相同。

我唯一的想法是使用 javascript 对输入进行编码。

谢谢。

【问题讨论】:

  • 所以你有一个内容页面可以加载多个母版页?
  • @CheckRaise - 是的 - 一个 index.aspx 页面。应用结合使用 url 重写和动态母版页。

标签: asp.net master-pages


【解决方案1】:

编辑:将请求验证与事件验证混淆。 为什么不根据 URL 也设置 Page 的 ValidateRequest。 但是出于好奇,您为什么选择这种方法?拥有一个内容页面并改变主页面?您是否根据 URL 应用主题?

您似乎无法动态设置 ValidateRequest 属性。它必须在页面指令或 Web.config 中设置。

尝试使用 Page.EnableEventValidation = true,如果这样可以得到所需的结果。

【讨论】:

  • 如何在代码隐藏中设置 ValidateRequest?我只知道页面指令或 web.config。我想这是我的问题。
  • 回答您的问题 - 这是一个内容管理系统,允许用户为他们正在创作的内容选择模板(母版页)。它使用映射到站点根目录中的公共 aspx 页面的友好 url。
  • Page.EnableEventValidation = true/false;附:确保在 Page_Init 事件或 Page_PreRender 上设置它
  • 您也可以留在 One Mater One 内容架构中并根据主题更改布局...
猜你喜欢
  • 1970-01-01
  • 2012-10-01
  • 2011-05-21
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多