[問題] WebForm 跨頁 POST Form

作者: On1earth (小淺)   2014-01-21 00:19:56
我在 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種方法感覺最方便,但就是沒辦法成功。
作者: mepowerlmay (用心,找對人)   2014-01-21 20:26:00
你要寫..ASP.NET沒錯吧? BUTTON CLICK事件Response.Redirect("b.aspx");
作者: m339606 (mize)   2014-01-21 22:47:00
原PO還在ASP時代嗎?該升級了喔XD
作者: On1earth (小淺)   2014-01-21 23:07:00
請問大大可以提示一下新時代的做法嗎?
作者: rularula   2014-01-23 11:35:00
有試過 Server.Transfer("b.aspx", true); 嗎??第二個參數代表會把A網頁的表單資料提交給B網頁或是用PreviousPage應該可以解決來源網頁的問題
作者: edward13 (-_-)   2014-01-24 14:42:00
還是別在webform裡搞兩個<form>比較妥當

Links booklink

Contact Us: admin [ a t ] ucptt.com