2011-02-09 29 views
1

我写了下面的代码登录后:System.Web.HttpException:无法向验证数据 - 发布网站

Session["IsLogin"] = false; 
     System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
     if (txtPassword.Text.Trim() == string.Empty) 
     { 
      // Display Error 
     } 
     else 
     { 
      string Pwd = config.AppSettings.Settings["PWD"].Value.ToString(); 
      FormsAuthenticationTicket formAuthTk = FormsAuthentication.Decrypt(Pwd); 
      string strDcryptedPwd = formAuthTk.Name.Trim().ToString(); 
      if (txtPassword.Text.Trim() == strDcryptedPwd) 
      { 
       Session["IsLogin"] = true; 
       Response.Redirect("AnyPage.aspx"); 
      } 
      else 
      { 
       // Error, Wrong password 
      } 
     } 

这是运行良好通过Visual Studio运行时。但是,当我出版它它显示下面的错误:

System.Web.HttpException: Unable to validate data

注:

  1. 我发布上,我正在开发 网站的 同一台服务器上的应用程序。

  2. 我试过EnableViewStateMAC = 在页面级别为false。 [登录页]

这个错误的共鸣是什么?为什么只有在我发布该网站时才会出现? 。

+1

在某些情况下,我在从VS2008运行时遇到错误。该错误来自`FormsAuthenticationTicket formAuthTk = FormsAuthentication.Decrypt(Pwd)行; ` – Chris 2011-02-09 13:24:37

回答

1

我改变了加密字符串和问题消失的方式。我不知道错误的原因,但我解决了这个问题。 希望它能帮助那些面临同样问题的人。

0

你不需要申报你没有,只是用Configuration.AppSettings [ “PWD”]的方式配置的ToString()...

+0

我做了同样的事情,并且我得到了这个错误`编译网站时,非静态字段,方法或属性'Configuration.AppSettings.get'` **需要对象引用** – Chris 2011-02-09 12:59:11