Session["value"]="true";直接赋值了, 这个是COOKIE吧,  C#里边是哪里设置它的过期时限的?  是在WEB。CONFIG 还是在IIS 具体是哪一行, 如何写?
SESSION 安全吗? 需要加密吗?  哪何加密保存?  SESSION[“VALUE”]=MD5。(TEXT)???请指导一下。  我是想在网站中存一个访问变量。这个变量是用户在登录了网站后, 使用到一些功能才录入的一个保护码。  我希望这个SESSION 值能随着用户登录验证成功后一同使用,直到用户验证失效过期,它就跟着过期。

解决方案 »

  1.   

    SESSION不是COOKIE, 只是SESSIONID存放在COOKIE里面 所有数据都是存放在SERVER上面的
    设置时限在IIS和WEB.CONFIG里面都可以
    SESSION是安全的 但是占用服务器端内存 
      

  2.   

    如何设置, 给代码出来。
    如果按你这样说来,  SESSION随着在线用户量的增加, 会点用服务器内存, 那么在这种情况下,我还有什么选择?  如果每个登录用户都要带一个变量在身来验证它的身份的话。  象我用web.config的角色进行管理;当我身份验证成功后,  当用户使用特定功能, 我能不能增加一个角色我就可以以角色进行判断了。因为登录的用户并不一定非要操作这个功能,但为了安全又得多设一个录入验证的功能。我发我的代码,你们大家一看就明白了。我在各文件夹用角色进行控制就很好了。
    Global.asax
    里的
      protected void Application_AuthenticateRequest(Object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;
            if (app.Request.IsAuthenticated)
            {            
                System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
                System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
                con = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString());
     
                string id = Context.User.Identity.Name;
                string sql = "select JS from B_YHGLB   where  (YHM='{0}') ";
                sql = string.Format(sql, id);
                cmd = new System.Data.SqlClient.SqlCommand(sql, con);
                con.Open();
                string ids = string.Empty;
                try
                {
                    System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader();
                    if (dr.Read() == true)
                    {
                        System.Security.Principal.GenericPrincipal ppal;
                        ids = dr["JS"].ToString();
                     //   ids += ',' + dr["MC"].ToString();
                        string[] roles;
                        roles = ids.Split(',');
                        ppal = new System.Security.Principal.GenericPrincipal(Context.User.Identity, roles);
                        Context.User = ppal;
                    }
                    else
                    {
                        Context.User = null;
                    }
                }
                catch
                {
                    throw;
                }
                finally
                {
                    con.Close();
                }
            }
      

  3.   

    IIS中设置SESSION:选择网站》会话状态》超时
    占用服务器内存确实是这么说 但是你完全可以根据单个SESSION中存放的对象大小估算一个用户占多少内存 然后再来取舍
      

  4.   


    我还是不用SESSION了, 因为我的用户量想来会大的。  十万二十万。晕