The operation implementation code for cookies under ASP.NET

  • 2020-05-16 06:41:13
  • OfStack

 
public class BsCookie 
{ 
// Operation of the cookie 
private HttpCookie _theCookie; 
// The corresponding cookie The name of the  
private string _cookieName; 
private bool _httpOnly = true; 
/// <summary> 
///  Whether to allow access only on the server side , By default, access is only allowed on the server side  
/// </summary> 
public bool HttpOnly 
{ 
get { return _httpOnly; } 
set { _httpOnly = value; } 
} 
private double _expireMinutes; 
/// <summary> 
/// Cookies Effective storage time , Expressed in minutes  
/// </summary> 
public double ExpireMinutes 
{ 
get { return _expireMinutes; } 
set { _expireMinutes = value; } 
} 
public BsCookie(string name,double expireMinutes) 
{ 
_cookieName = name; 
_expireMinutes = expireMinutes; 
} 
/// <summary> 
///  Read the corresponding cookie 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
private HttpCookie GetCookieReq() 
{ 
HttpRequest request = HttpContext.Current.Request; 
if (request != null) 
{ 
HttpCookie cookie = request.Cookies[_cookieName]; 
if (cookie != null) 
{ 
return cookie; 
} 
} 
return null; 
} 
/// <summary> 
///  Set the corresponding cookie 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
private HttpCookie GetCookieResponse() 
{ 
HttpResponse response = HttpContext.Current.Response; 
if (response != null) 
{ 
HttpCookie cookie = response.Cookies[_cookieName]; 
if (cookie != null) 
{ 
return cookie; 
} 
} 
return new HttpCookie(_cookieName); 
} 
/// <summary> 
///  Set only the primary key  
/// </summary> 
/// <param name="name"></param> 
/// <param name="value"></param> 
/// <param name="exMinutes"></param> 
public void SetCookie(string value) 
{ 
_theCookie = GetCookieResponse(); 
_theCookie.Value = HttpUtility.HtmlEncode(AllCommon.Encrypt(value)); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
_theCookie.HttpOnly = _httpOnly; 
} 
/// <summary> 
///  Set up the 1 Set the primary key  
/// </summary> 
/// <param name="name"></param> 
/// <param name="keys"></param> 
/// <param name="exMinutes"></param> 
public void SetCookie(Hashtable keys) 
{ 
_theCookie = GetCookieResponse(); 
foreach (DictionaryEntry de in keys) 
{ 
_theCookie.Values[de.Key.ToString()] = HttpUtility.HtmlEncode(AllCommon.Encrypt(de.Value.ToString())); 
} 
if (Math.Abs(_expireMinutes) > 1) 
{ 
_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
_theCookie.HttpOnly = _httpOnly; 
} 
/// <summary> 
///  To obtain a single 1 the cookie The primary key  
/// </summary> 
/// <param name="name"></param> 
/// <param name="exMinutes"> extendable cookie Default time </param> 
/// <returns></returns> 
public string GetCookie() 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return string.Empty; 
} 
string thevalue = AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Value)); 
if (thevalue.Length > 0) 
{ 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
} 
return thevalue; 
} 
/// <summary> 
///  To obtain 1 Set the corresponding cookie value  
/// </summary> 
/// <param name="name"></param> 
/// <param name="exMinutes"></param> 
/// <returns></returns> 
public Hashtable GetCookiesKeys() 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return null; 
} 
string[] keys = _theCookie.Values.AllKeys; 
if (keys.Length > 0) 
{ 
Hashtable keyHash = new Hashtable(); 
foreach (string key in keys) 
{ 
keyHash.Add(key, AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[key]))); 
} 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
return keyHash; 
} 
return null; 
} 
/// <summary> 
///  To obtain 1 A single in a group 1 A value  
/// </summary> 
/// <param name="keyname"></param> 
/// <param name="exMinutes"></param> 
/// <returns></returns> 
public string GetCookieKV(string keyname) 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return string.Empty; 
} 
string result=AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[keyname])); 
if (result.Length > 0) 
{ 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1 && serverCookie != null) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
} 
return result; 
} 
} 

Demonstrates the basic operation of Cookie in Asp.Net.
 
Imports System.Web.HttpContext 
Public Class CookieFramework 
' Write a single Cookie 
Public Shared Function WriteCookie(ByVal CookieName As String, ByVal CookieValue As String, ByVal ExpiresDate As Integer) As Boolean 
Dim aCookie As New HttpCookie(CookieName) 
aCookie.Value = CookieValue 
aCookie.Expires = DateTime.Now.AddDays(ExpiresDate) 
System.Web.HttpContext.Current.Response.Cookies.Add(aCookie) 
End Function 

' to Cookie The collection adds subitems  
Public Shared Function WriteCookies(ByVal CookieName As String, ByVal CookieItem As String, ByVal ItemValue As String, ByVal ExpiresDate As Integer) As Boolean 
Dim aCookie As HttpCookie 
If Current.Request.Cookies(CookieName) Is Nothing Then 
aCookie = New HttpCookie(CookieName) 
Else 
aCookie = Current.Request.Cookies(CookieName) 
End If 
aCookie.Values(CookieItem) = ItemValue 
aCookie.Expires = DateTime.Now.AddDays(ExpiresDate) 
System.Web.HttpContext.Current.Response.Cookies.Add(aCookie) 
End Function 
' Read a single Cookie 
Public Shared Function ReadCookie(ByVal CookieName As String) As String 
If Current.Request.Cookies(CookieName) Is Nothing Then 
Return Nothing 
Else 
Return Current.Request.Cookies(CookieName).Value 
End If 
End Function 

' read Cookie The contents of the subitems in the collection  
Public Shared Function ReadCookies(ByVal CookieName As String, ByVal CookieItem As String) As String 
If Current.Request.Cookies(CookieName) Is Nothing Then 
Return Nothing 
Else 
If Current.Request.Cookies(CookieName).Values(CookieItem) Is Nothing Then 
Return Nothing 
Else 
Return Current.Request.Cookies(CookieName).Values(CookieItem) 
End If 
End If 
End Function 
' Delete the entire Cookie 
Public Shared Function DeleteCookie(ByVal CookieName As String) As Boolean 
Dim aCookie As New HttpCookie(CookieName) 
Dim i As Integer 
Dim limit As Integer = Current.Request.Cookies.Count - 1 
For i = 0 To limit 
aCookie = Current.Request.Cookies(i) 
aCookie.Expires = DateTime.Now.AddDays(-1) 
Current.Response.Cookies.Add(aCookie) 
Next 
End Function 
' delete Cookie The items in the set  
Public Shared Function DeleteCookies(ByVal CookieName As String, ByVal ItemName As String) As Boolean 
Dim aCookie As HttpCookie = Current.Request.Cookies(CookieName) 
aCookie.Values.Remove(ItemName) 
aCookie.Expires = DateTime.Now.AddDays(1) 
Current.Response.Cookies.Add(aCookie) 
End Function 
End Class 

Related articles: