怎样设置session中内容保存时间,session 的具体用法以及它与cookie,Application的区别!

解决方案 »

  1.   

    Session.Timeout = 600;    //时间Session.Content["aa"] = 要保存的值;
    取出值 = Session.Content["aa"] .Tostring();Session是保存在服务器端的。
    cookie是保存在客户端的。
    Application是全局的,所有用户共享。
      

  2.   

    在IIS的设置了设。
    session是对此用户登录后到退出前,有效;APPLICATION是整个应用范围,所有用户有效;COOKIE是当前页面
      

  3.   

    1.application对象 
        application用于保存所有用户的公共的数据信息,假如使用application对象,一个需要考虑的问题是任何写操作都要在 application_onstart事件(global.asax)中完成.尽管使用application.lock和 applicaiton.unlock方法来避免写操作的同步,但是它串行化了对application对象的请求,当网站访问量大的时候会产生严重的性 能瓶颈.因此最好不要用此对象保存大的数据集合. 
           2.session对象
        session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).s
    ession中的信息保存在web服务器内容中,保存的数据量可大可小.当session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用 程序后它仍然在内存中保持一段时间,因此使用session对象使保存用户数据的方法效率很低.对于小量的数据,使用session对象保存还是一个不错 的选择.使用session对象保存信息的代码如下:
    //存放信息
    session["username"]="zhouhuan";
    //读取数据
    string username=session["username"].tostring();    3.cookie对象
        cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.假如没有设置 cookie失效日期,它们仅保存到关闭浏览器程序为止.假如将cookie对象的expires属性设置为minvalue,则表示cookie永远不 会过期.cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用 cookie对象保存的代码如下:
    //存放信息
    response.cookies["userid"].value="0001";
    //读取信息
    string userid=response.cookies["userid"].value;设置session时间:
    Session.Timeout=24*60 或者 webconfig里设置timeout
      

  4.   

    ASP.NET中Session的用法之一:使用Session设定权限
    Session简介:
    简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。
    Session的初次使用:
    protected void Page_Load(object sender, EventArgs e)
    {//这是页面的初始化
         if (!Page.IsPostBack)
         {//判断是否为初次执行
             if (Object.Equals(Session["AdminName"], null))
             {//判断在Session["AdminName"]是否存在值
                 Response.Redirect("ErrorPage.aspx", true);
             }
             else
             {//要是存在则记录下这个人的用户名
                Name.Text =  Session["AdminName"].ToString();
             }
         }
    }
    ASP.NET中Session的用法之二:进行页面传值
    在页面之间传递信息有许多方式:
    第一:可以使用QueryString
    第二:可以使用Session
    第三:Server.Transfer
    这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下
    首先:QueryString
    QueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。
    下面通过一个小例子来说明一下
    1.创建一个Web页面,叫SendMessage.aspx
    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,与一个Button,叫Submit
       protected void Submit_Click(object sender, EventArgs e)
       {
          String Url = "ReceiveMessage.aspx?Name=" +
          TxtName.Text + "&Email=" + TxtEmail.Text;
          Response.Redirect(Url);
       }
    3.再创建一个接收信息页面,叫ReceiveMessage.aspx
    4.在页面内添加两个Label,叫LbName,LbEmail
       protected void Page_Load(object sender, EventArgs e)
       {//使用Request来接收由上个页面传递过来的值,分别显示在页面上
          LbName.Text = Request.QueryString["Name"];
          LbEmail.Text = Request.QueryString["Email"];
       }
    再次:使用Session变量
    使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失
    下面举例说明
    1.创建一个页面,叫SendSession
    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit
       protected void Submit_Click(object sender, EventArgs e)
       {//可以使用Session的Add方法
          Session["Name"] = TxtName.Text;
          //可以使用Session.Add("Name",TxtName.Text);
          Session["Email"] = TxtEmail.Text;
          //可以使用Session.Add("Email",TxtEmail.Text);
          Response.Redirect("ReceiveMessage.aspx");
       }
    3.再创建一个页面,叫ReceiveMessage.aspx
    4.在页面内添加两个Label,叫LbName,LbEmail
       protected void Page_Load(object sender, EventArgs e)
       {
          LbName.Text = Session["Name"].ToString();
          LbEmail.Text = Session["Email"].ToString();
          Session["Name"].Remove();
          Session["Email"].Remove();
          //使用结束要清除Session中的值
       }
    这是使用Session传递数值,此方式耗费服务器的资源,尽量少使用
    再次:使用Server.Transfer
    这种传递方式有点复杂,但也可以是一种值传递方式
    下面举例说明一下:
    1.创建一个页面,叫SendMessage.aspx
    2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit
       protected void Submit_Click(object sender, EventArgs e)
       {
          Server.Transfer("ReceiveMessage.aspx");
       }
    再添加一个属性
       public String Name
       {
          Get
          {
             return TxtName.Text;
          }
       }
       public String Email
       {
          Get
          {
             return TxtEmail.Text;
          }
       }
    3.再创建一个页面,叫ReceiveMessage.aspx
    4.在页面放两个Label,叫LbName,LbEmail
       protected void Page_Load(object sender, EventArgs e)
       {
          //创建原始窗体的实例SendMessage wf1
          //获得实例化的句柄
           wf1=(SendMessage)Context.Handler;
          Label1.Text=wf1.Name;
          Label2.Text=wf1.EMail;
       }
      

  5.   

    IIS设置里:网站->主目录->配置->选项
      

  6.   

    简单说application对象是公共的Session是私人的
      

  7.   


    延长保存时间 
    去web.config里改: <sessionState 
    mode="InProc" 
    stateConnectionString="tcpip=127.0.0.1:42424" 
    sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" 
    cookieless="false" 
    timeout="改这里.以分钟为单位" 
    />ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等) http://www.cnblogs.com/zc22/archive/2010/03/11/1683734.html
      

  8.   

    还是不要用Session了  影响速度~!