ASP.NET 问题集锦
【1】解决错误:从客户端(Content="<p>测试</p>")中检测到有潜在危险的 Request.Form 值
.NetFrameWork 4.0 Validaterequest="false"不起作用,需要恢复到2.0的ASP.NET请求验证功能的行为,要在以下设置 Web.config文件中的system.web节点修改 requestValidationMode 的值为“2.0”:
<httpRuntime requestValidationMode="2.0"/>
值得注意的是,需要同时在页面和配置文件里配置 Validaterequest="false" 才会生效。即使是.NetFrameWork 4.0 或者 .NetFrameWork 4.5,也可以使用2.0的验证方式。
不过这样做会增加网站的安全风险,需要谨慎使用。
【2】HttpWebResponse请求状态码
通过HttpWebResponse.StatusCode来判断当前请求返回的状态信息。状态码详细信息如下表:
|
成员名称 |
说明 |
|
Continue |
等效于 HTTP 状态 100。Continue指示客户端可能继续其请求。 |
|
SwitchingProtocols |
等效于 HTTP 状态 101。SwitchingProtocols指示正在更改协议版本或协议。 |
|
OK |
等效于 HTTP 状态 200。OK指示请求成功,且请求的信息包含在响应中。这是最常接收的状态代码。 |
|
Created |
等效于 HTTP 状态 201。Created指示请求导致在响应被发送前创建新资源。 |
|
Accepted |
等效于 HTTP 状态 202。Accepted指示请求已被接受做进一步处理。 |
|
NonAuthoritativeInformation |
等效于 HTTP 状态 203。NonAuthoritativeInformation指示返回的元信息来自缓存副本而不是原始服务器,因此可能不正确。 |
|
NoContent |
等效于 HTTP 状态 204。NoContent指示已成功处理请求并且响应已被设定为无内容。 |
|
ResetContent |
等效于 HTTP 状态 205。ResetContent指示客户端应重置(或重新加载)当前资源。 |
|
PartialContent |
等效于 HTTP 状态 206。PartialContent指示响应是包括字节范围的 GET 请求所请求的部分响应。 |
|
MultipleChoices |
等效于 HTTP 状态 300。MultipleChoices指示请求的信息有多种表示形式。默认*作是将此状态视为重定向,并遵循与此响应关联的 Location 头的内容。 |
|
Ambiguous |
等效于 HTTP 状态 300。Ambiguous指示请求的信息有多种表示形式。默认*作是将此状态视为重定向,并遵循与此响应关联的 Location 头的内容。 |
|
MovedPermanently |
等效于 HTTP 状态 301。MovedPermanently指示请求的信息已移到 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。 |
|
Moved |
等效于 HTTP 状态 301。Moved指示请求的信息已移到 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 |
|
Found |
等效于 HTTP 状态 302。Found指示请求的信息位于 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 |
|
Redirect |
等效于 HTTP 状态 302。Redirect指示请求的信息位于 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 |
|
SeeOther |
等效于 HTTP 状态 303。作为 POST 的结果,SeeOther将客户端自动重定向到 Location 头中指定的 URI。用 GET 生成对 Location 头所指定的资源的请求。 |
|
RedirectMethod |
等效于 HTTP 状态 303。作为 POST 的结果,RedirectMethod将客户端自动重定向到 Location 头中指定的 URI。用 GET 生成对 Location 头所指定的资源的请求。 |
|
NotModified |
等效于 HTTP 状态 304。NotModified指示客户端的缓存副本是最新的。未传输此资源的内容。 |
|
UseProxy |
等效于 HTTP 状态 305。UseProxy指示请求应使用位于 Location 头中指定的 URI 的代理服务器。 |
|
Unused |
等效于 HTTP 状态 306。Unused是未完全指定的 HTTP/1.1 规范的建议扩展。 |
|
TemporaryRedirect |
等效于 HTTP 状态 307。TemporaryRedirect指示请求信息位于 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 |
|
RedirectKeepVerb |
等效于 HTTP 状态 307。RedirectKeepVerb指示请求信息位于 Location 头中指定的 URI 处。接收到此状态时的默认*作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 |
|
BadRequest |
等效于 HTTP 状态 400。BadRequest指示服务器未能识别请求。如果没有其他适用的错误,或者如果不知道准确的错误或错误没有自己的错误代码,则发送BadRequest。 |
|
Unauthorized |
等效于 HTTP 状态 401。Unauthorized指示请求的资源要求身份验证。WWW-Authenticate 头包含如何执行身份验证的详细信息。 |
|
PaymentRequired |
等效于 HTTP 状态 402。保留PaymentRequired以供将来使用。 |
|
Forbidden |
等效于 HTTP 状态 403。Forbidden指示服务器拒绝满足请求。 |
|
NotFound |
等效于 HTTP 状态 404。NotFound指示请求的资源不在服务器上。 |
|
MethodNotAllowed |
等效于 HTTP 状态 405。MethodNotAllowed指示请求的资源上不允许请求方法(POST 或 GET)。 |
|
NotAcceptable |
等效于 HTTP 状态 406。NotAcceptable指示客户端已用 Accept 头指示将不接受资源的任何可用表示形式。 |
|
ProxyAuthenticationRequired |
等效于 HTTP 状态 407。ProxyAuthenticationRequired指示请求的代理要求身份验证。Proxy-authenticate 头包含如何执行身份验证的详细信息。 |
|
RequestTimeout |
等效于 HTTP 状态 408。RequestTimeout指示客户端没有在服务器期望请求的时间内发送请求。 |
|
Conflict |
等效于 HTTP 状态 409。Conflict指示由于服务器上的冲突而未能执行请求。 |
|
Gone |
等效于 HTTP 状态 410。Gone指示请求的资源不再可用。 |
|
LengthRequired |
等效于 HTTP 状态 411。LengthRequired指示缺少必需的 Content-length 头。 |
|
PreconditionFailed |
等效于 HTTP 状态 412。PreconditionFailed指示为此请求设置的条件失败,且无法执行此请求。条件是用条件请求标头(如 If-Match、If-None-Match 或 If-Unmodified-Since)设置的。 |
|
RequestEntityTooLarge |
等效于 HTTP 状态 413。RequestEntityTooLarge指示请求太大,服务器无法处理。 |
|
RequestUriTooLong |
等效于 HTTP 状态 414。RequestUriTooLong指示 URI 太长。 |
|
UnsupportedMediaType |
等效于 HTTP 状态 415。UnsupportedMediaType指示请求是不支持的类型。 |
|
RequestedRangeNotSatisfiable |
等效于 HTTP 状态 416。RequestedRangeNotSatisfiable指示无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,或因为范围的结尾在资源的结尾之后。 |
|
ExpectationFailed |
等效于 HTTP 状态 417。ExpectationFailed指示服务器未能符合 Expect 头中给定的预期值。 |
|
InternalServerError |
等效于 HTTP 状态 500。InternalServerError指示服务器上发生了一般错误。 |
|
NotImplemented |
等效于 HTTP 状态 501。NotImplemented指示服务器不支持请求的函数。 |
|
BadGateway |
等效于 HTTP 状态 502。BadGateway指示中间代理服务器从另一代理或原始服务器接收到错误响应。 |
|
ServiceUnavailable |
等效于 HTTP 状态 503。ServiceUnavailable指示服务器暂时不可用,通常是由于过多加载或维护。 |
|
GatewayTimeout |
等效于 HTTP 状态 504。GatewayTimeout指示中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。 |
|
HttpVersionNotSupported |
等效于 HTTP 状态 505。HttpVersionNotSupported指示服务器不支持请求的 HTTP 版本。 |
【3】ASP.NET服务器端跳转页面的三种方法
1、Response.Redirect 这个跳转页面的方法跳转速度慢,因为它要走 2 次回发 (postback) ,不能跳过登录保护。
Redirect 跳转机制:首先是服务器端发送一个 http 请求到客户端,通知需要跳转到新页面,然后客户端再发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到 session 。
2、Server.Transfer 速度快,只需要一次 postback ,但它必须是在同一个站点内跳转。
Server.Transfer 的重定向请求发生在服务器端,仅仅将此控件传递到新的网页并且不在客户端重新定位该网页,所以浏览器的 url 地址仍然是原页面的地址!另外,它能跳过登录保护 。默认情况下,Transfer 方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但是如果把该方法的第二个参数设置成 true ,就可以保留原先页面的表单数据和查询字符串。
Server.Transfer("test.aspx"); // 服务器停止执行本页,保存本页的当前数据后,再使页面转向 test.aspx ,并将跳转之前数据加上 test.aspx 页面执行的结果返回给浏览器。
3、Sever.Execute 这个方法主要是用在页面设计上,它必须是在同一个站点内跳转,也只需要一次 postback 。
这个方法是需要将一个页面的输出结果插入到另一个 aspx 页面的时候使用,大部分是在表格中将某一个页面类似于嵌套的方式存在于另一页面。
Server.Execute("test.aspx");// 服务器保存此页的当前数据后,使页面转向 test.aspx 执行,在 test.aspx 执行之后又返回本页继续执行,再将三者结果合并后返回给浏览器。Execute 方法跳转类似于函数调用。
如何选择页面重定向的方法:
asp.net 中页面跳转方式 ---- Redirect 、 Transfer 、 Execute 、超链接、 HyperLink 控件。
当需要把用户跳转到另一台服务器上的页面的时候 ,使用 Redirect
当需要把用户跳转到非 aspx 页面时候,如 html ,使用 Redirect
需要把查询字符串作为 url 一部分传给服务器的时候,使用 Redirect ,因为其他两种方法不能做到 2 次 postback ,把数据带回服务器
需要 aspx 页面间的转换(不涉及登录),使用 Transfer
当需要把 aspx 页面的输出结果插入到另一个 aspx 页面的时候使用 Execute 。
当需要用户来决定什么时候跳转页面,就使用超链接。
要用程序来控制转换的目标,但转换的时机由用户决定,使用 Web 服务器的 HyperLink 控件,动态设置其 NavigateUrl 属性。
【4】aspx 页面引用命名空间
单页面引用使用 <%@ Import Namespace="" %>。如果在配置文件(web.config)中设置,则所有页面都可以引用。
<system.web>
......
<pages>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<add namespace="System.Web.UI.WebControls.WebParts" />
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</pages>
...
</system.web>
ASP.NET 问题集锦的更多相关文章
- Asp.net问题集锦
1.在Web应用开发中经常碰到这样的情况,Dropdownlist绑定的数据太多,用户要选择某一项必须从头找到尾,使用起来很不方便.最近我在工作中就碰到这种情况,公司内某个业务系统需要绑定几百条的厂家 ...
- ASP.NET MVC HtmlHelper用法集锦
ASP.NET MVC HtmlHelper用法集锦 在写一个编辑数据的页面时,我们通常会写如下代码 1:<inputtype="text"value='<%=View ...
- C#和ASP.Net面试题目集锦
1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.2.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程. ...
- ASP.NET 状态服务 及 session丢失问题解决方案总结
ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...
- [转]ASP.NET 状态服务 及 session丢失问题解决方案总结
转自[http://blog.csdn.net/high_mount/archive/2007/05/09/1601854.aspx] 最近在开发一ASP.NET2.0系统时,在程序中做删除或创建文件 ...
- asp.net资料! (.NET) (ASP.NET)
使用SqlBulkCopy类加载其他源数据到SQL表 在数据回发时,维护ASP.NET Tree控件的位置 vagerent的vs2005网站开发技巧 ASP.NET2.0小技巧--内部控件权限的实现 ...
- 2016最新Java笔试题集锦
更新时间:2015-08-13 来源:网络 投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...
- delphi关于文件操作集锦
关于文件操作集锦 取得该快捷方式的指向EXE关键词:快捷方式 LNK unit Unit1; interface usesWindows, Messages, SysUtils, Varian ...
- Java笔试题集锦
Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...
随机推荐
- spring中各jar功能及jar包之间的依赖关系
(1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工 ...
- JProfiler9安装 监控Tomcat
本地客户端:jprofiler_windows-x64_9_1.zip 服务器端:jprofiler_linux_9_1.sh 服务器端系统为:CentOS6.5 X64 客户端JProfiler,详 ...
- 查询数据过多页面反应慢引入缓存解决方案(Redis、H2)
问题:原系统查询接口不支持分页也不可能加入分页支持,导致Ajax查询数据过多,返回数据达到2W多条记录时响应已经极慢,查询功能不要求数据实时性,页面反应速度极慢.体验不好:经排查是由于数据量过大导 ...
- 简述几项关于web应用的开发技术
有几个人曾经问我,有哪些最有用或最好的编程语言适宜学习? 姑且略过HTML/CSS不谈,我认为答案取决于你想通过编程来做什么. 要点速览 对只用一种语言来构建某个项目的情况而言,Javascript和 ...
- Java Web之Servlet技术
1.Servlet基础 针对Servlet技术开发,Sun公司提供了一些列接口和类,其中最重要的是javax.servlet.Servlet接口,两个重要的包是javax.servlet和javax. ...
- spring mvc拦截器
Java里的拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取act ...
- POJ 1556 The Doors【最短路+线段相交】
思路:暴力判断每个点连成的线段是否被墙挡住,构建图.求最短路. 思路很简单,但是实现比较复杂,模版一定要可靠. #include<stdio.h> #include<string.h ...
- 在Docker中运行web应用
启动一个简单的web 应用 使用社区提供的模板,启动一个简单的web应用,熟悉下各种Docker命令的使用: # docker run -d -P training/webapp python app ...
- USACO八皇后
VIS 0 1 2分别竖线和两个对角线,参见对角线(x,y)的和 差关系表 #include<iostream> #include<cstdio> #include<al ...
- 奇葩啊,HOLOLENS里模拟器截不了图,后台DEVIE PORTAL可以截
奇葩啊,HOLOLENS里模拟器截不了图,后台DEVIE PORTAL可以截 截屏 https://developer.microsoft.com/en-us/windows/holographic/ ...