2014-02-27 69 views
0

我们有一个Linux共享服务器上的wordpress网站(使用cPanel)。我们想创建一个登录脚本来将我们的网站连接到另一个使用微软服务器(aspx页面)的链接。当我们使用脚本并尝试登录时,我们看到以下错误:viewstate MAC验证失败wordpress

'/ NET'应用程序中的服务器错误。

验证视图状态MAC失败。如果此应用程序由Web Farm或群集托管,请确保配置指定相同的验证密钥和验证算法。 AutoGenerate不能在群集中使用。

http://go.microsoft.com/fwlink/?LinkID=314055

我们做了一些检查,似乎这个问题可以通过编辑Windows服务器上的web.config文件来解决,但我们是Linux操作系统。任何人都可以建议如何解决WordPress的问题?

下面是我们如何使用的代码在WordPress:

<form method="post" action="http://owners.mydomain.com/login.aspx" id="ddl00"> 
<div class="aspNetHidden"> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"  value="/fdfdfaerghjkkaaklgjlakrrvc34fdfWjAdfdfdfamNIzDfdf6adBjuDFWfzdfmdffY" /> 
</div> 

<div class="aspNetHidden"> 

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/dfdfdasfasdfjglakfJKLFJDLKJR34252KKJLKJFD/fdfkadfeoawrfir/IeirIIURIR+KKJFKEjkdsfjerk" /> 
</div> 
<table style="width:auto; margin:2em auto 0 auto;"> 
<tr> 
<td class="label"> 
Username 
</td> 
<td> 
<input name="username" type="text" id="username" tabindex="1" /> 
</td> 
</tr> 
<tr> 
<td class="label"> 
Password 
</td> 
<td> 
<input name="password" type="password" id="password" tabindex="2" /> 
</td> 
</tr> 
<tr> 
<td colspan="2" class="button_row"> 
<input type="submit" name="ctl15" value="Login" tabindex="3" /> 
</td> 
</tr> 
</table> 
</form> 
+0

你能告诉你怎么从你的WordPress网站制作登录ASP.NET应用程序? –

+0

我已经添加了这个问题。 – Bamboo

回答

1

在WordPress的表单有两个隐藏字段,该__VIEWSTATE而为之值已复制__EVENTVALIDATION

这些值是自动生成的,在ASP.NET引擎中用于验证每个接收请求。

您使用的值已过期,并且预计您将收到此错误

如果您有权访问它,以便它可以从其他应用程序接收POST,则需要调整ASP.NET应用程序。我正在考虑一个空白页面(例如external-login.aspx),它将接受这些POSTS并检查证书。

一个例子:在WordPress网站

Web表单

<form method="post" action="http://owners.mydomain.com/external-login.aspx"> 
    <table style="width:auto; margin:2em auto 0 auto;"> 
     <tr> 
      <td class="label"> 
       Username 
      </td> 
      <td> 
       <input name="username" type="text" id="username" tabindex="1" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="label"> 
       Password 
      </td> 
      <td> 
       <input name="password" type="password" id="password" tabindex="2" /> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2" class="button_row"> 
       <input type="submit" name="ctl15" value="Login" tabindex="3" /> 
      </td> 
     </tr> 
    </table> 
</form> 

代码在外部的Login.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
    string username = Request.Form["username"]; 
    string password = Request.Form["password"]; 

    //Code here that checks the credentials and logins the user 
}