zoukankan      html  css  js  c++  java
  • .net4.0下 解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误

    asp.net 2.0 通常解决办法
    方案一:
    将.aspx文件中的page项添加ValidateRequest="false" ,如下:
    <%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>


    方案二:
    修改web.config配置文件
    <system.web>
    <pages validateRequest="false" >
    </pages>
    </system.web>
    总结:validateRequest 这句我们知道是关闭验证,也就是说提交带标签,比如 <strong>粗体</strong> 这样的值时,ASP.NET 不会报错。这里推荐使用方案一,因为方案一只修改test.aspx这一个页面;而如果使用方案二的话,将是整个解决方案都变成ValidateRequest="false" 。


    asp.net 4.0 解决办法
    4.0和2.0的方法一样,不过要注意的是从 .Net Framework 4.0 开始,asp.net开始强制检测Request参数安全,而我们可以通过修改 Web.config 来恢复 2.0 版本的模式。
    方法如下:
    修改Web.config,增加requestValidationMode="2.0"属性值
    <system.web>
    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false"></pages>
    </system.web>
    4.0 中多了一个 requestValidationMode,这是什么意思呢?
    requestValidationMode 有两个值:
    •2.0仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。
    •4.0 默认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。
    由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0。

     

    保存的时候,最好是用这样的方式来保存

    string txtvalue = HttpUtility.HtmlEncode(txtValue.Text.Trim());
  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/joeylee/p/3607040.html
Copyright © 2011-2022 走看看