如何将asp.net表单的值提交到其他应用程序中的另一个asp.net表单
net应用程序webapp1和webapp2,在每个应用程序中我都有一个asp.net表单Deafult.aspx 我想从webapp1中的Default.aspx进行表单提交,并在webapp2中接收该值 我试图通过简单地设置action=“webapp2 location”来实现这一点,但它抛出了下面的错误 viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成 我甚至在web.config中添加了machinekey元素 但它仍然显示出同样的错误 这是向webapp2发送数据的webapp1表单的代码如何将asp.net表单的值提交到其他应用程序中的另一个asp.net表单,asp.net,post,webforms,Asp.net,Post,Webforms,net应用程序webapp1和webapp2,在每个应用程序中我都有一个asp.net表单Deafult.aspx 我想从webapp1中的Default.aspx进行表单提交,并在webapp2中接收该值 我试图通过简单地设置action=“webapp2 location”来实现这一点,但它抛出了下面的错误 viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成 我甚至在web.config
<form id="form1" method="post" runat="server" action="http://localhost/webValRec/Default.aspx">
<div>
<asp:Label ID="Label1" runat="server" Text="Value to pass "></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
谢谢您击中了靶心:您需要确保在单独的服务器上进行视图状态验证 解决办法是:
- 禁用ViewState:EnableViewState=“false”
- 禁用MAC验证('unsecure'解决方案):EnableViewStateMac=“false”
- 配置两台服务器:。您可能错过了加密和解密密钥生成部分
在处理回发时,表单可能也必须严格相同(相同的控件):在webapp2上添加缺少的控件。你击中了靶心:你需要确保在单独的服务器上进行视图状态验证 解决办法是:
- 禁用ViewState:EnableViewState=“false”
- 禁用MAC验证('unsecure'解决方案):EnableViewStateMac=“false”
- 配置两台服务器:。您可能错过了加密和解密密钥生成部分
处理回发时,表单可能也必须严格相同(相同的控件):在webapp2上添加缺少的控件。一个快速解决错误的方法就是不将viewstate提交到第二页。您可以在webapp1/Default.aspx的onload事件期间通过javascript删除它 添加一个名为onload的javascript函数
// javascript function to remove viewstate form element.
function removeViewState() {
var viewstate = document.getElementById('__VIEWSTATE');
viewstate.parentNode.removeChild(viewstate);
}
将onload事件添加到主体以调用函数
<body onload="javascript:removeViewState();">
绕过错误的一个快速方法是不将viewstate提交到第二个页面。您可以在webapp1/Default.aspx的onload事件期间通过javascript删除它 添加一个名为onload的javascript函数
// javascript function to remove viewstate form element.
function removeViewState() {
var viewstate = document.getElementById('__VIEWSTATE');
viewstate.parentNode.removeChild(viewstate);
}
将onload事件添加到主体以调用函数
<body onload="javascript:removeViewState();">
$(document).ready(function () {
$("#__VIEWSTATE").remove();
});