ASP.NET MVC5总结(三)登陆中常用技术解析之session与cookie

时间:2023-03-08 19:13:49

1.session机制

session机制是在服务器端保持状态的方案,在做系统登陆时,我们往往会用到session来存储一些用户登录的重要信息,而这些信息是不能存在cookie中的。

当访问量增多时,是会比较占用服务器性能的。

写session的方法

 public static void WriteSession(string key, T value)
{
if (key.IsEmpty())
return;
HttpContext.Current.Session[key] = value;
}

读取session的方法

 public static string GetSession(string key)
{
if (key.IsEmpty())
return string.Empty;
return HttpContext.Current.Session[key] as string;
}

删除指定的session的方法

 public static void RemoveSession(string key)
{
if (key.IsEmpty())
return;
HttpContext.Current.Session.Contents.Remove(key);
}

2.cookie机制

cookie机制采用的是在客户端保持状态的方案,在做系统登陆时,我们会将一下用户的基本信息存储到用户的浏览器,这时候我们将用到cookie,不过它最大能存4K的数据。

写cookie的方法

 public static void WriteCookie(string strName, string strValue)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Value = strValue;
HttpContext.Current.Response.AppendCookie(cookie);
}

读取cookie的方法

 public static string GetCookie(string strName)
{
if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
{
return HttpContext.Current.Request.Cookies[strName].Value.ToString();
}
return "";
}

删除cookie的方法

 public static void RemoveCookie(string CookiesName)
{
HttpCookie objCookie = new HttpCookie(CookiesName.Trim());
objCookie.Expires = DateTime.Now.AddYears(-);
HttpContext.Current.Response.Cookies.Add(objCookie);
}