2013-05-23 24 views
0

Я младший в области разработки программного обеспечения и веб-разработки и столкнулся с проблемой. Мне нужна страница входа в систему, чтобы после того, как пользователь нажал кнопку входа в систему, они будут отправлены на мою фактическую веб-страницу. Тем не менее, каждый раз, когда я нажимаю кнопку Вход в систему я получаю эту ошибку:Ошибка входа в систему

Server Error in '/Case04' Application. 

Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster." 

Для этого конкретного проекта, я не обеспокоен тем, что пользователь вводит, пока они ввода информации. Я просто нуждаюсь в этом, поэтому, когда нажата кнопка входа в систему, я отправляюсь на мою фактическую веб-страницу, которая является pc.aspx.

Вот мой код:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<link href="login.css" rel="stylesheet" type="text/css" /> 
    <title></title> 
</head> 
<body> 
<%--Heading--%> 
<form name="c_order" id="c_order" runat="server" 
action="pc.aspx" method="get"> 
<table> 
    <tr> 
     <td> 
      <img src="mclogog.jpg" alt="heading" id="heading" /> 
     </td> 
    </tr> 
</table> 

<%--login--%> 
<asp:Login ID="login" class="login" runat="server" size="10" maxlength="25" EventValidation="false"></asp:Login> 
<p id="member" >Already a member?</p> 

<%--fieldset for new user --%> 
<fieldset> 
<legend id="bill">Shipping Information</legend> 
     <label for="fname" >First Name<span>*</span></label> 
     <input type="text" name="fname" id="fname" size="27" /> 
     <label for="lname"> Last Name<span>*</span></label> 
     <input type="text" name="lname" id="lname" size="27" /> 
     <label for="address1">Address #1<span>*</span></label> 
     <input type="text" name="address1" id="address1" size="57" /> 
     <label for="address2">Address #2</label> 
     <input type="text" name="address2" id="address2" size="57" /> 
     <label for="city">City<span>*</span></label></td> 
     <input type="text" name="city" id="city" size="40" /> 
     <label for="state">State<span>*</span> </label> 
     <input type="text" name="state" id="state" size="3" /> 
     <label for="zip">ZIP<span>*</span> </label> 
     <input type="text" name="zip" id="zip" size="10" maxlength="10" /> 
     <label for="country">Country<span>*</span></label> 
     <input type="text" name="country" id="country" size="40" value="United States" /> 
     <p id="ast"> 
     * = Required field, must be filled in. 
     </p>  
</fieldset> 
</form> 
</body> 
</html> 

Я был бы признателен за любую помощь, спасибо!

+0

Этот сайт размещен на одном сервере или в среде веб-фермы? Ошибка, которую вы получаете, заключается в том, что viewstate на странице, отправленной с клиента, не соответствует исходному серверу. Может быть, потому, что вы попадаете на другой сервер в ферме? – Tim

ответ

0

Проблема заключается в том, что ваша страница не обрабатывает собственные события. У вас есть тэг <>, настроенный для возврата его значений на другую страницу.

< форма ... действие = "pc.aspx" ... />, но ваша страница действительно называется login.aspx. Итак, когда контент этой формы отправляется в pc.aspx, он не может декодировать viewstate, потому что это не произошло из pc.aspx.cs. Это произошло с другой страницы.

Удалить атрибут действия из тега формы. Пример:

<form name="c_order" id="c_order" runat="server" method="get"> 
+0

Спасибо! Работал отлично. – user2262689

Смежные вопросы