关于ASP.NET中Cookie的几个问题:
      1.开启Forms验证。登录的时候,连接数据库,验证用户成功。创建一个FormsAuthenticationTicket实例ticket,
通过FormsAuthentication.Encrypt(ticket)后,
把ticket放到Cookie中。关闭浏览器,然后打开:
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files
打开刚才创建的Cookie,修改内容,保存。再打开网页,发现这个Cookie无效了.
ASP.NET是如何识别这个Cookie的?
2.因为登录的时候已经选择“两周内重复登录”,所以下次打开页面的时候就可以初始化数据  了。这样写:protected void Page_Load(object sender, EventArgs e)
     {
         if (!IsPostBack)
         {
             if (Request.Cookies["User"] != null)
             {
                 FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies["User"].Value);
                 string name =FormsAuthentication.HashPasswordForStoringInConfigFile(ticket.Name,"md5");
//其它代码.......
             }
         }
     }这样写有什么问题吗???
还有,通常中Cookie都放些什么内容呢?UserName和ID?

解决方案 »

  1.   

    http://hi.baidu.com/dht8/blog/item/d3724bf3a0b397cc0a46e09a.html
      

  2.   

    没设置cookies时间的时候
    cookies保存在游览器里
    浏览器关了cookies当然就没了
      

  3.   

    创建一个FormsAuthenticationTicket实例ticket, 
    通过FormsAuthentication.Encrypt(ticket)后, 
    把ticket放到Cookie中。
    Cookie只能保存字符类数据非字符串的数据,你可以进行序列化/反序列化序列化可参考http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx
      

  4.   

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
      

  5.   

    使用和禁用Cookie
      用户可以改变浏览器的设置,以使用或者禁用Cookies。
      微软 Internet Explorer
      工具 > Internet选项 > 隐私页
      调节滑块或者点击“高级”,进行设置. 
      Mozilla Firefox
      工具 > 选项 > 隐私
      (注: 在Linux版本中,可能会是如下操作:编辑 > 属性 > 隐私 , 而Mac则是:Firefox > 属性 > 隐私)
      设置Cookies选项 
      设定阻止/允许的各个域内Cookie 
      查看Cookies管理窗口,检查现存Cookie信息,选择删除或者阻止它们 
      苹果计算机 Safari
      Safari > 预置 > 安全标签
      选择以下的选项 
      总是 接受 Cookies 
      永不 接受 Cookies 
      接受 Cookies 仅从您浏览的站点 (例如,不接受来自其它站点的广告) 预设的选项. 
      您可以显示所有驻留在您浏览器中的 cookies,也可随时将它们之一删除。
      Konqueror
      如果没有设置cookie列表,请记住在域名前面加入“.”,例如.baidu.org,否则百度将不会读取cookie(针对KDE 3.3)。
      

  6.   

    Cookie是个小型的记录信息的地方。通常是登陆网站后在浏览器端生成,以便下次登录时
    确认信息、
      

  7.   

    没设置cookies时间的时候 
    cookies保存在游览器里 
    浏览器关了cookies当然就没了
      

  8.   

    你看看,这样行不,我是可以的!
    /// <summary>
    /// 保存用户信息到用户端
    /// </summary>
    /// <param name="usersDto">用户实体</param>
    /// <param name="forever">是否永久保存Cookies</param>
    /// <returns></returns>
    public void StoreAccount(UsersDto usersDto, bool forever)
    {

    //保存到Session
    HttpContext.Current.Session[ACCOUNT_KEY] = usersDto;
    //保存到Cookies
    HttpCookie cookies = new HttpCookie(ACCOUNT_KEY);
    cookies["memName"] = HttpContext.Current.Server.UrlEncode(usersDto.LoginName);
    cookies["memHashKey"] = usersDto.LoginKey;
    cookies.Domain = ConfigHelper.Instance.MainDomain;
    if (forever)
    {
    cookies.Expires = Convert.ToDateTime(DateTime.Now + TimeSpan.FromDays(365));
    }
    HttpContext.Current.Response.Cookies.Set(cookies);

    //保存当前用户IP
    HttpCookie cookies_ip = new HttpCookie(IP_KEY);
    cookies_ip.Value = HttpContext.Current.Request.UserHostAddress;
    cookies_ip.Domain = ConfigHelper.Instance.MainDomain;
    HttpContext.Current.Response.Cookies.Set(cookies_ip);
    }