问题描述
Session["value"]="true";直接赋值了,这个是COOKIE吧,C#里边是哪里设置它的过期时限的?是在WEB。CONFIG还是在IIS具体是哪一行,如何写?SESSION安全吗? 需要加密吗? 哪何加密保存? SESSION[“VALUE”]=MD5。(TEXT)???请指导一下。 我是想在网站中存一个访问变量。这个变量是用户在登录了网站后, 使用到一些功能才录入的一个保护码。 我希望这个SESSION 值能随着用户登录验证成功后一同使用,直到用户验证失效过期,它就跟着过期。
解决方案
解决方案二:
SESSION不是COOKIE,只是SESSIONID存放在COOKIE里面所有数据都是存放在SERVER上面的设置时限在IIS和WEB.CONFIG里面都可以SESSION是安全的但是占用服务器端内存
解决方案三:
引用1楼的回复:
SESSION不是COOKIE,只是SESSIONID存放在COOKIE里面所有数据都是存放在SERVER上面的设置时限在IIS和WEB.CONFIG里面都可以SESSION是安全的但是占用服务器端内存
如何设置,给代码出来。如果按你这样说来,SESSION随着在线用户量的增加,会点用服务器内存,那么在这种情况下,我还有什么选择?如果每个登录用户都要带一个变量在身来验证它的身份的话。象我用web.config的角色进行管理;当我身份验证成功后,当用户使用特定功能,我能不能增加一个角色我就可以以角色进行判断了。因为登录的用户并不一定非要操作这个功能,但为了安全又得多设一个录入验证的功能。我发我的代码,你们大家一看就明白了。我在各文件夹用角色进行控制就很好了。Global.asax里的protectedvoidApplication_AuthenticateRequest(Objectsender,EventArgse){HttpApplicationapp=(HttpApplication)sender;if(app.Request.IsAuthenticated){System.Data.SqlClient.SqlConnectioncon=newSystem.Data.SqlClient.SqlConnection();System.Data.SqlClient.SqlCommandcmd=newSystem.Data.SqlClient.SqlCommand();con=newSystem.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString());stringid=Context.User.Identity.Name;stringsql="selectJSfromB_YHGLBwhere(YHM='{0}')";sql=string.Format(sql,id);cmd=newSystem.Data.SqlClient.SqlCommand(sql,con);con.Open();stringids=string.Empty;try{System.Data.SqlClient.SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()==true){System.Security.Principal.GenericPrincipalppal;ids=dr["JS"].ToString();//ids+=','+dr["MC"].ToString();string[]roles;roles=ids.Split(',');ppal=newSystem.Security.Principal.GenericPrincipal(Context.User.Identity,roles);Context.User=ppal;}else{Context.User=null;}}catch{throw;}finally{con.Close();}}
解决方案四:
IIS中设置SESSION:选择网站》会话状态》超时占用服务器内存确实是这么说但是你完全可以根据单个SESSION中存放的对象大小估算一个用户占多少内存然后再来取舍
解决方案五:
引用3楼的回复:
IIS中设置SESSION:选择网站》会话状态》超时占用服务器内存确实是这么说但是你完全可以根据单个SESSION中存放的对象大小估算一个用户占多少内存然后再来取舍
我还是不用SESSION了,因为我的用户量想来会大的。十万。。。二十万。。。。晕