分享
 
 
 

cookieless为true时,Request.Form无法获取htm表单数据的原因及解决方案

王朝asp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

案例:index.htm----->webform1.aspx

index.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title></title>

<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">

<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

</head>

<body>

<form name="test1" action="WebForm2.aspx" method="post">

<input type="text" name="uername"><br>

<input type="password" name="password" >

<input type="submit" name="submit" value="提交">

</form>

</body>

</html>

webform1.aspx

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>WebForm2</title>

<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">

<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">

<meta name=vs_defaultClientScript content="JavaScript">

<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">

</head>

<body MS_POSITIONING="GridLayout">

<%

Dim userName As String

Dim password As String

userName=Request.Form("username")

password=Request.Form("password")

Response.Write(username)

Response.Write(password)

%>

</body>

</html>

现象:

若web.config中设置cookieless为True,则index.htm将无法将form中的数据提交给webform1.aspx

若将web.config中的cookiesless改为false,则webform1.aspx可以取得index.htm表单中的数据.

分析:

这个问题是由一个无cookiesless id的客户端请求的标准处理流程引起的。当程序工作在cookieless模式时,若提交请求的链接中无cookiesless id,则程序将重定位页面请求到自身页面,以建立这样一个cookiesless id(也就是出现在url中的一段小括号里边的字符串),也就是在这个重定位的过程中,客户端提交的数据被丢失。所以webform1.aspx无法取得 index.htm表单中数据。

英文原文:

What is happening here is standard procedure for issuing a cookieless id to a request without one in order to start a session for the client. In the cookieless mode, when we detect that an id was not supplied in the url, we redirect the client to the same page with the new session id embedded in the url. As is happening here, the post variables are lost in the course of the redirect.

----------------------

解决办法:

1. Disable session state for the page with <%@ Page EnableSessionState=false ... %>. If it is required to associate the client with a session later, use some other correlation between this page and the next page that will do the redirect and assign a session, such as a querystring. You can store the posted data that you would normally put in the session on the server (database or file), and then pick them up later. Alternatively you can encrypt them and pass them via querystring.

2. Obtain the session id first by hitting an aspx page and having it redirect to another page with the session id stored in a querystring variable (there are many others ways to do it).

3. Disable cookieless session state for the application (this is the least desired solution here)

------------------------------

Ref:http://forums.asp.net/493348/ShowPost.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有