作者On1earth (小浅)
看板C_Sharp
标题[问题] WebForm 跨页 POST Form
时间Tue Jan 21 00:19:56 2014
我在 a.aspx 放了一个表单并提交到 b.aspx
<form id="form1" runat="server" action="b.aspx">
....
</form>
但POST过去後就会出现
「Viewstate MAC 的验证失败。如果此应用程式是由 Web 伺服阵列或丛集所装载,请
确定 <machineKey> 组态指定有相同的 validationKey 和验证演算法。AutoGenerate
无法在丛集中使用。」
爬文後查到几个方法,有些无效而有些觉得不太合适,
1. 在 Web.config 增加 machineKey 金钥设定。无效。
2. 在目的页关闭 EnableViewStateMac。有效,但担心安全性。
3. 用 asp:Button 控制项设定 PostBackUrl 属性。有效,但是button必须摆在form里面
,因为有特殊的需求须在form外面的按钮控制submit的动作。
请问各位大大,是否有像第2种做法,但是可以限制来源页面,不要全部放行的方法呢?
第1种方法感觉最方便,但就是没办法成功。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: On1earth 来自: 114.37.216.174 (01/21 00:21)
1F:→ mepowerlmay:你要写..ASP.NET没错吧? BUTTON CLICK事件 01/21 20:26
2F:→ mepowerlmay:Response.Redirect("b.aspx"); 01/21 20:29
3F:→ m339606:原PO还在ASP时代吗?该升级了喔XD 01/21 22:47
4F:→ On1earth:请问大大可以提示一下新时代的做法吗? 01/21 23:07
5F:→ rularula:有试过 Server.Transfer("b.aspx", true); 吗?? 01/23 11:35
6F:→ rularula:第二个参数代表会把A网页的表单资料提交给B网页 01/23 11:35
7F:→ rularula:或是用PreviousPage应该可以解决来源网页的问题 01/23 11:43
8F:推 edward13:还是别在webform里搞两个<form>比较妥当 01/24 14:42