0

在我的网站上,一旦登录我的管理员帐户,我确实“记住了我”,然后我没有注销(注销后它会删除 cookie),我想使用另一个帐户进入并检查“记住我”,我收到此错误:

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

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

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

有谁知道如何解决?谢谢。

这里代码:

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"];
4

1 回答 1

1

这在这里Session["user"] = Request.Cookies["account"];设置了一个 cookie 而不是一个字符串。用于((HttpCookie)Session["user"]).Value;从 Cookie 中取回您的字符串。

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

于 2013-06-24T16:48:37.087 回答