ASP.NET Cookies奇怪的错误

时间:2013-06-24 16:28:11

标签: asp.net

在我的网站上,一旦登录我的管理员帐户,我就“记住了我”,而且我注销了(一旦你注销就会删除cookie)我想和另一个帐户一起输入并检查“记住我”,我得到了这个错误:

Unable to cast object of type 'System.Web.HttpCookie' to type 'System.String'.

我认为它在我的Session上输入了一些奇怪的东西,但我不知道为什么......

我已经尝试过了: 我已经尝试了所有东西,我不知道为什么它不起作用。

任何人都知道如何解决? 感谢。

这里代码:

protected void Page_Load(object sender, EventArgs e)
    {

        if (Request.Cookies["account"] != null)
        {
            Session["user2"] = Request.Cookies["userFont"];
            Session["user"] = Request.Cookies["account"];
        }

        if (Session["user"] == null)
        {
            Session["user2"] = "Guest";
            hey = (string)Session["user2"];
            log += "You are not logged in, <a href='Login.aspx'><font color='red'>Log in!</font></a> or <a href='Register.aspx'><font color='red'>Register!</font></a> ";
            button += "<td><a href='Login.aspx' class='button'>Log in</a></td>";
        }
        else
        {
            hi = (string)Session["user"];
          hey = "<a href='\\Profile.aspx?user="+hi+"'>" + Session["user2"] + "</a>";
            button += "<td><a href='Login.aspx' class='button'>Log out</a></td>";
        }

我收到错误:

hi = (string)Session["user"];

1 个答案:

答案 0 :(得分:1)

这里Session["user"] = Request.Cookies["account"];设置cookie而不是字符串。 使用((HttpCookie)Session["user"]).Value;从Cookie中恢复字符串。

http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx