当前位置:Gxlcms > asp.net > ASP.NET下对cookies的操作实现代码

ASP.NET下对cookies的操作实现代码

时间:2021-07-01 10:21:17 帮助过:9人阅读

代码如下:
  1. <br>public class BsCookie <br>{ <br>//操作的cookie <br>private HttpCookie _theCookie; <br>//对应的cookie的名称 <br>private string _cookieName; <br>private bool _httpOnly = true; <br>/// <summary> <br>/// 是否只允许在服务器端访问,默认只允许在服务端访问 <br>/// </summary> <br>public bool HttpOnly <br>{ <br>get { return _httpOnly; } <br>set { _httpOnly = value; } <br>} <br>private double _expireMinutes; <br>/// <summary> <br>/// Cookies有效的存放时间,以分钟表示 <br>/// </summary> <br>public double ExpireMinutes <br>{ <br>get { return _expireMinutes; } <br>set { _expireMinutes = value; } <br>} <br>public BsCookie(string name,double expireMinutes) <br>{ <br>_cookieName = name; <br>_expireMinutes = expireMinutes; <br>} <br>/// <summary> <br>/// 读取对应的cookie <br>/// </summary> <br>/// <param name="name"></param> <br>/// <returns></returns> <br>private HttpCookie GetCookieReq() <br>{ <br>HttpRequest request = HttpContext.Current.Request; <br>if (request != null) <br>{ <br>HttpCookie cookie = request.Cookies[_cookieName]; <br>if (cookie != null) <br>{ <br>return cookie; <br>} <br>} <br>return null; <br>} <br>/// <summary> <br>/// 设置对应的cookie <br>/// </summary> <br>/// <param name="name"></param> <br>/// <returns></returns> <br>private HttpCookie GetCookieResponse() <br>{ <br>HttpResponse response = HttpContext.Current.Response; <br>if (response != null) <br>{ <br>HttpCookie cookie = response.Cookies[_cookieName]; <br>if (cookie != null) <br>{ <br>return cookie; <br>} <br>} <br>return new HttpCookie(_cookieName); <br>} <br>/// <summary> <br>/// 仅设置主键的 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="value"></param> <br>/// <param name="exMinutes"></param> <br>public void SetCookie(string value) <br>{ <br>_theCookie = GetCookieResponse(); <br>_theCookie.Value = HttpUtility.HtmlEncode(AllCommon.Encrypt(value)); <br>if (Math.Abs(_expireMinutes) > 1) <br>{ <br>_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); <br>} <br>_theCookie.HttpOnly = _httpOnly; <br>} <br>/// <summary> <br>/// 设置一组主键 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="keys"></param> <br>/// <param name="exMinutes"></param> <br>public void SetCookie(Hashtable keys) <br>{ <br>_theCookie = GetCookieResponse(); <br>foreach (DictionaryEntry de in keys) <br>{ <br>_theCookie.Values[de.Key.ToString()] = HttpUtility.HtmlEncode(AllCommon.Encrypt(de.Value.ToString())); <br>} <br>if (Math.Abs(_expireMinutes) > 1) <br>{ <br>_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); <br>} <br>_theCookie.HttpOnly = _httpOnly; <br>} <br>/// <summary> <br>/// 获取单一的cookie主键值 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="exMinutes">需要延长的cookie的默认时间</param> <br>/// <returns></returns> <br>public string GetCookie() <br>{ <br>_theCookie = GetCookieReq(); <br>if (_theCookie == null) <br>{ <br>return string.Empty; <br>} <br>string thevalue = AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Value)); <br>if (thevalue.Length > 0) <br>{ <br>HttpCookie serverCookie = GetCookieResponse(); <br>if (Math.Abs(_expireMinutes) > 1) <br>{ <br>serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); <br>} <br>} <br>return thevalue; <br>} <br>/// <summary> <br>/// 获取一组对应的cookie值 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="exMinutes"></param> <br>/// <returns></returns> <br>public Hashtable GetCookiesKeys() <br>{ <br>_theCookie = GetCookieReq(); <br>if (_theCookie == null) <br>{ <br>return null; <br>} <br>string[] keys = _theCookie.Values.AllKeys; <br>if (keys.Length > 0) <br>{ <br>Hashtable keyHash = new Hashtable(); <br>foreach (string key in keys) <br>{ <br>keyHash.Add(key, AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[key]))); <br>} <br>HttpCookie serverCookie = GetCookieResponse(); <br>if (Math.Abs(_expireMinutes) > 1) <br>{ <br>serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); <br>} <br>return keyHash; <br>} <br>return null; <br>} <br>/// <summary> <br>/// 获取一组里面的单一个值 <br>/// </summary> <br>/// <param name="keyname"></param> <br>/// <param name="exMinutes"></param> <br>/// <returns></returns> <br>public string GetCookieKV(string keyname) <br>{ <br>_theCookie = GetCookieReq(); <br>if (_theCookie == null) <br>{ <br>return string.Empty; <br>} <br>string result=AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[keyname])); <br>if (result.Length > 0) <br>{ <br>HttpCookie serverCookie = GetCookieResponse(); <br>if (Math.Abs(_expireMinutes) > 1 && serverCookie != null) <br>{ <br>serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); <br>} <br>} <br>return result; <br>} <br>} <br><br>演示Asp.Net中对Cookie的基本操作。 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>Imports System.Web.HttpContext <br>Public Class CookieFramework <br>'写入单个Cookie <br>Public Shared Function WriteCookie(ByVal CookieName As String, ByVal CookieValue As String, ByVal ExpiresDate As Integer) As Boolean <br>Dim aCookie As New HttpCookie(CookieName) <br>aCookie.Value = CookieValue <br>aCookie.Expires = DateTime.Now.AddDays(ExpiresDate) <br>System.Web.HttpContext.Current.Response.Cookies.Add(aCookie) <br>End Function <br><br>'给Cookie集合添加子项 <br>Public Shared Function WriteCookies(ByVal CookieName As String, ByVal CookieItem As String, ByVal ItemValue As String, ByVal ExpiresDate As Integer) As Boolean <br>Dim aCookie As HttpCookie <br>If Current.Request.Cookies(CookieName) Is Nothing Then <br>aCookie = New HttpCookie(CookieName) <br>Else <br>aCookie = Current.Request.Cookies(CookieName) <br>End If <br>aCookie.Values(CookieItem) = ItemValue <br>aCookie.Expires = DateTime.Now.AddDays(ExpiresDate) <br>System.Web.HttpContext.Current.Response.Cookies.Add(aCookie) <br>End Function <br>'读取单个Cookie <br>Public Shared Function ReadCookie(ByVal CookieName As String) As String <br>If Current.Request.Cookies(CookieName) Is Nothing Then <br>Return Nothing <br>Else <br>Return Current.Request.Cookies(CookieName).Value <br>End If <br>End Function <br><br>'读取Cookie集合中的子项内容 <br>Public Shared Function ReadCookies(ByVal CookieName As String, ByVal CookieItem As String) As String <br>If Current.Request.Cookies(CookieName) Is Nothing Then <br>Return Nothing <br>Else <br>If Current.Request.Cookies(CookieName).Values(CookieItem) Is Nothing Then <br>Return Nothing <br>Else <br>Return Current.Request.Cookies(CookieName).Values(CookieItem) <br>End If <br>End If <br>End Function <br>'删除整个Cookie <br>Public Shared Function DeleteCookie(ByVal CookieName As String) As Boolean <br>Dim aCookie As New HttpCookie(CookieName) <br>Dim i As Integer <br>Dim limit As Integer = Current.Request.Cookies.Count - 1 <br>For i = 0 To limit <br>aCookie = Current.Request.Cookies(i) <br>aCookie.Expires = DateTime.Now.AddDays(-1) <br>Current.Response.Cookies.Add(aCookie) <br>Next <br>End Function <br>'删除Cookie集合中的子项 <br>Public Shared Function DeleteCookies(ByVal CookieName As String, ByVal ItemName As String) As Boolean <br>Dim aCookie As HttpCookie = Current.Request.Cookies(CookieName) <br>aCookie.Values.Remove(ItemName) <br>aCookie.Expires = DateTime.Now.AddDays(1) <br>Current.Response.Cookies.Add(aCookie) <br>End Function <br>End Class <br></li><li> </li><li> </li></ol></pre>

人气教程排行