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 ...
随机推荐
- Makefile变量
自定义变量 = 是最基本的赋值,会把整个makefile展开之后再决定是多少 x=foo y=$(x)bar #y是asdbar,不是foobar x=asd := 是覆盖之前的值,和=不同,和赋值的 ...
- nginx日志切割脚本
#!/bin/bash ip=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d ...
- 设置输入域(input/textarea)中文本光标的位置
以前记录了一篇 将光标定位于输入框最右侧的实现方式 ,实现光标定位在文本的最末.这种需求往往在修改现有的文本.有时可能还需要把光标定位在首位,或者中间某个位置,这就需要实现一个更通用的方法. 这个方法 ...
- Centos和Redhat的区别和联系
网上看到的,转载给大家 CentOS与RedHat的关系: RedHat在发行的时候,有两种方式:二进制的发行方式以及源代码的发行方式.无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次 ...
- 我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等)
Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在.本文试着整理作者了解到的一些使用案例. ...
- 使用Openswan接入Windows Azure Site to Site VPN
Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...
- Stanford机器学习笔记-4. 神经网络Neural Networks (part one)
4. Neural Networks (part one) Content: 4. Neural Networks (part one) 4.1 Non-linear Classification. ...
- 第8章 用户模式下的线程同步(3)_Slim读写锁(SRWLock)
8.5 Slim读/写锁(SRWLock)——轻量级的读写锁 (1)SRWLock锁的目的 ①允许读者线程同一时刻访问共享资源(因为不存在破坏数据的风险) ②写者线程应独占资源的访问权,任何其他线程( ...
- SQL各种语句、函数
1.更改数据库的名称 2.表中有数据的情况下再添加列.删除列 3.在SQLServer 中各种查询语句的使用示例 4.模糊查询的语句 5.排序语句.排序并查前三名的语句 聚合函数:sum,avg,ma ...
- hibernate之关联映射
No.1 映射一对多双向关联关系: 当类与类之间建立了关联,就可以方便的从一个对象导航到另一个或另一组与它关联的对象. 步骤一: 注意:hibernate要求在持久化类中定义集合类属性时,必须把属性类 ...