书上有段代码是这样的:
      if (FormsAuthentication.Authenticate (UserName.Text,
          Password.Text))
           FormsAuthentication.RedirectFromLoginPage (UserName.Text,
              true);
      else
          Output.Text = "Invalid login";
    它就是验证用户的,不正确就转到登陆界面,而FormsAuthentication.RedirectFromLoginPage (UserName.Text,true)这个方法第二个参数设置为true,就可以自动写入一个永久cookies.
     可是我一旦关闭浏览器cookies就消失了,怎么解决呢?还有当我在登陆窗口输入用户名后,切换到密码框时,自动出现了密码,怎么不让它自动出现?
    

解决方案 »

  1.   

    可是我一旦关闭浏览器cookies就消失了
    cookie是存在客户端的,不同于session。就算你关闭了这个窗口cookie还是存在的,除非你把cookie清空了。
    还有当我在登陆窗口输入用户名后,切换到密码框时,自动出现了密码。
    这是你IE设置的问题,跟程序无关的。
      

  2.   

    上面应该都是楼主IE设置的问题,可能与代码关系不大,至少与上面贴出的代码关系不大。
    第一个问题:永久cookies是不存在的。
    第二个问题:是浏览器的自动完成功能吧。
    可以在你浏览器的配置选项里重置成默认设置应该就可以了。
      

  3.   

    1,想持久保存cookie,使用FormsAuthenticationTicket================
    FormsAuthenticationTicket tk = new FormsAuthenticationTicket(
    1,                            
    name,                           
    DateTime.Now,                 
    DateTime.Now.AddMinutes(30),  //设置到期时间
    false,
    roles
    );
      

  4.   

    2.自动出现密码,和个人的IE设置有关系..不是程序的问题..让客户清理IE..然后在属性--内容---自动完成--关闭个人用户和密码就好了
      

  5.   

    HttpCookie hcUserID=new HttpCookie("userid",strUserID);
    hcUserID.Expires=System.DateTime.Now.AddMinutes(60.0d);
    Response.Cookies.Add(hcUserID);
    //用以上的方法设置一下时间看看
      

  6.   

    第一个问题:
        我已测试通过,没有问题的。所谓永久 cookie 是指它的过期日期特别长,比如 2099 年。
        使用此功能有个前提,IE 允许 cookie ,且不能自动清空 cookie 
    第二个问题:
        同样也是 IE 的设置。在第一次访问网站并输入密码进行提交时,会提示你是否保存密码。
        你可以通过以下二种方式清除:
            a、双击用户名输入框,当出现下拉的提示时,找到你想要删除的帐号
               注意不要点击它,将鼠标放在上面即可,然后按键盘上的“Del”
            b、IE 工具 →Internet 选项 → 内容 → 自动完成 → 清除密码