Session["value"]="true";直接赋值了, 这个是COOKIE吧, C#里边是哪里设置它的过期时限的? 是在WEB。CONFIG 还是在IIS 具体是哪一行, 如何写?
SESSION 安全吗? 需要加密吗? 哪何加密保存? SESSION[“VALUE”]=MD5。(TEXT)???请指导一下。 我是想在网站中存一个访问变量。这个变量是用户在登录了网站后, 使用到一些功能才录入的一个保护码。 我希望这个SESSION 值能随着用户登录验证成功后一同使用,直到用户验证失效过期,它就跟着过期。
SESSION 安全吗? 需要加密吗? 哪何加密保存? SESSION[“VALUE”]=MD5。(TEXT)???请指导一下。 我是想在网站中存一个访问变量。这个变量是用户在登录了网站后, 使用到一些功能才录入的一个保护码。 我希望这个SESSION 值能随着用户登录验证成功后一同使用,直到用户验证失效过期,它就跟着过期。
设置时限在IIS和WEB.CONFIG里面都可以
SESSION是安全的 但是占用服务器端内存
如果按你这样说来, 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();
}
}
占用服务器内存确实是这么说 但是你完全可以根据单个SESSION中存放的对象大小估算一个用户占多少内存 然后再来取舍
我还是不用SESSION了, 因为我的用户量想来会大的。 十万二十万。晕