web.config文件进行如下设置
<authentication mode="Forms">
  <forms name=".AuthASPNET" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>在登录页采用生成FormsAuthenticationTicket来完成登录
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, 
txtUser.Text, 
DateTime.Now, 
DateTime.Now.AddMinutes(30),
chkIsPersistent.Checked, //是否选定永久cookie
txtUser.Text, 
FormsAuthentication.FormsCookiePath);
可当我选定永久cookie的选择框,为什么重新打开ie打开该地址还需要登录呢??

解决方案 »

  1.   

    还有就是如何在该验证票上附加我自己特有的内容呢,好像它是生成cookie,可怎么取得该cookie
      

  2.   

    如果验证成功的话用这句话应该可以FormsAuthentication.RedirectFromLoginPage (txtUser.Text, true);
      

  3.   

    楼主究竟想干什么?你用验证票据生成了cookie  关闭IE后你以为客户端还存在cookie  但是服务器端的session已经消失  当然需要重新验证
      

  4.   

    谁能解释验证票的认证机制,这100分全给了。按楼上的说,生成验证票的过程中,在客户端生成cookie,同时在服务段产生session???可现在测试情况,我有时打开ie直接访问,竟然不跳到登录页面了。真是奇怪!
      

  5.   

    你没有在web.config里加需要验证的文件或目录啊,
    在<system.web></system.web>后加上你想要验证的文件
    如: <!--设置需要购物用户认证的文件-->
     <location path="Checkout.aspx">
            <system.web>
                <authorization>
                    <deny users="?" />
                </authorization>
            </system.web>
      </location>请求CheckOut.aspx的时候,如果没有登陆就会转的登陆页面
      

  6.   

    你的代码在生成验证票的过程中,指定在客户端永久保存Cookie.但同时你在代码中也指定了cookie的过期时间是DateTime.Now.AddMinutes(30),也就是说过了30分钟后,虽然你的cookie还在,但是已经过期了,也就没有用了.需要重新登录.
    另外要注意的是客户端的cookie是由客户端控制的,你的cookie有可能由于你自己的操作而消失,比如用上网助手清空了或者其它的方式使得它没有了,这时你再访问时就要求你登录了.