1

我为登录编写了以下代码:

 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:无法验证数据

笔记:

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

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

这个错误的原因是什么?为什么它只在我发布网站时出现?

4

3 回答 3

1

我改变了加密字符串的方式,问题消失了。我不知道错误的原因,但我是这样解决的。希望它对面临同样问题的其他人有所帮助。

于 2011-02-10T10:10:05.660 回答
0

您不需要以您的方式声明配置,只需使用 Configuration.AppSettings["PWD"].ToString()...

于 2011-02-09T12:46:01.500 回答
0

看这里:

如何:从 Web.config 文件中读取应用程序设置

于 2011-02-09T13:04:34.400 回答