我有一个html表单,其中的操作链接到远程托管的aspx表单。 html表单模仿aspx表单的所有输入名称,id,值等。
在使用正确的登录数据提交html登录表单后,页面将链接到原始登录表单,而只输入用户名数据,而不是处理数据并重定向到目标链接。在再次填写正确的信息后,用户就可以登录。
通过检查网站上同一登录表单的其他实例的功能并遇到同样的问题,我猜测该问题是远程aspx文件中固有的,而不是html表单。
该表单一直工作到大约一周前,当它立即开始表现时,没有对代码进行任何更改。
直播网站位于http://blinqphoto.com
感谢您的回复,这让我很难过。 请在下面找到html表单和相应的aspx表单。
HTML:
<form style="" name="LoginForm" method="post" action="https://acct.blinqphoto.com/loginframe.aspxredirect=http%3a%2f%2fwww.blinqphoto.com%2fmy-albums%2f" id="LoginForm">
<div>
<input name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMjU0ODEwOTIzZGR61068oyJyEBB4UM9Gc8Fxx4225NLn2XmKWX95/vl6Zg==" type="hidden">
</div>
<div>
<input name="__EVENTVALIDATION" id="__EVENTVALIDATION"value="/wEWBAL1/8vwCgKTqJrlAQKN8oRJAv6M0J8PQkj11RCPtUGzghOj3yic+Mr17E559GJ73UVSHbxO9VE=" type="hidden">
</div>
<span> Email <input name="UserNameTxt" id="UserNameTxt" placeholder="example@gmail.com" type="text"></span>
<br>
<span>Password<input name="PasswordTxt" id="PasswordTxt" placeholder="password" class="password" type="password"></span>
<br>
<input name="LoginButton" value="Sign in" class="LoginButton" type="submit"><br>
</form>
ASPX:
<form style="" name="LoginForm" method="post" action="https://acct.blinqphoto.com/loginframe.aspx?redirect=http%3a%2f%2fwww.blinqphoto.com%2fmy-albums%2f" id="LoginForm">
<div>
<input name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMjU0ODEwOTIzZGR61068oyJyEBB4UM9Gc8Fxx4225NLn2XmKWX95/vl6Zg==" type="hidden">
</div>
<div>
<input name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAL1/8vwCgKTqJrlAQKN8oRJAv6M0J8PQkj11RCPtUGzghOj3yic+Mr17E559GJ73UVSHbxO9VE=" type="hidden">
</div>
<span> Email <input name="UserNameTxt" id="UserNameTxt" placeholder="example@gmail.com" type="text"></span>
<br>
<span>Password<input name="PasswordTxt" id="PasswordTxt" placeholder="password" class="password" type="password"></span>
<br>
<input name="LoginButton" value="Sign in" class="LoginButton" type="submit"><br>
</form>
答案 0 :(得分:0)
我相信这是由.NET事件验证引起的。如果仔细观察,__ EVENTVALIDATION表单字段的值并不总是完全相同。这用于验证回发 - 例如,检查它是否来自其他URL,这正是您正在做的事情。
您需要为login.aspx页面禁用事件验证。
Page.EnableEventValidation = false;
Is there a way to disable Event Validation for an entire page?
请注意,禁用事件验证可能会使您的网页更容易受到攻击。