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 ...
随机推荐
- x01.os.14: 时间都去哪儿了
时间都去哪儿了 老帕的“花儿为什么这样红”,三分钟引起六次欢呼,却败给了张碧晨.试想一下,如果是人气更高的陈冰,即使唱得和张碧晨一模一样,可能仍然不敌老帕,为什么张碧晨就能取胜呢?有这么个笑话:一人弹 ...
- uva 6757 Cup of Cowards(中途相遇法,貌似)
uva 6757 Cup of CowardsCup of Cowards (CoC) is a role playing game that has 5 different characters (M ...
- DedeCms文档关键词替换,优先替换长尾关键词
本文教大家:dedecms文档关键词维护之关键词出现多次,只给出现的第一个加链接的 举例:当文章中出现了一百次台历时,按官方的原理,他会给一百个台历都加上链接的.dedecms这如何是好? 解决方法( ...
- [转]ion-slide-box
本文转自:http://ionicframework.com/docs/api/directive/ionSlideBox/ The Slide Box is a multi-page contain ...
- 用css画图标
css3的属性 transform(转换) 用途很广泛,功能也很强大,为了熟悉它的各种转换方式(平移 translate,旋转 rotate,扭曲 skew,放缩 scale),我做了一些平常常用的一 ...
- BZOJ2429[HAOI2006]聪明的猴子[最小生成树 kruskal]
2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 896 Solved: 575[Submit][Statu ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- [No00000C]Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
Word对于我们办公来说,是不可缺少的办公软件,因为没有它我们可能无法进行许多任务.所以现在的文员和办公室工作的人,最基础的就是会熟悉的使用Office办公软件.在此,为提高大家Word使用水平,特为 ...
- 南邮CTF隐写之丘比龙的女神
刚开始下载下图片来 习惯性的binwalk一下 没发现东西 formost一下也没分离出来 扔进c32asm中发现有nvshen.jpg 于是改后缀名字为.zip 解压nvshen.jpg发现无法解压 ...
- HTML 学习笔记 JavaScript (实现)
HTML中的脚本 必须位于<script></script>标签之间 脚本可被放置在HTML页面的<body>和<head>部分中 <script ...