在我的网站上,一旦登录我的管理员帐户,我就“记住了我”,而且我注销了(一旦你注销就会删除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"];
答案 0 :(得分:1)
这里Session["user"] = Request.Cookies["account"];
设置cookie而不是字符串。
使用((HttpCookie)Session["user"]).Value;
从Cookie中恢复字符串。
http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx