zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

NetASP代码 实现 操作 cookies
2023-06-13 09:14:30 时间
复制代码代码如下:

publicclassBsCookie
{
//操作的cookie
privateHttpCookie_theCookie;
//对应的cookie的名称
privatestring_cookieName;
privatebool_httpOnly=true;
///<summary>
///是否只允许在服务器端访问,默认只允许在服务端访问
///</summary>
publicboolHttpOnly
{
get{return_httpOnly;}
set{_httpOnly=value;}
}
privatedouble_expireMinutes;
///<summary>
///Cookies有效的存放时间,以分钟表示
///</summary>
publicdoubleExpireMinutes
{
get{return_expireMinutes;}
set{_expireMinutes=value;}
}
publicBsCookie(stringname,doubleexpireMinutes)
{
_cookieName=name;
_expireMinutes=expireMinutes;
}
///<summary>
///读取对应的cookie
///</summary>
///<paramname="name"></param>
///<returns></returns>
privateHttpCookieGetCookieReq()
{
HttpRequestrequest=HttpContext.Current.Request;
if(request!=null)
{
HttpCookiecookie=request.Cookies[_cookieName];
if(cookie!=null)
{
returncookie;
}
}
returnnull;
}
///<summary>
///设置对应的cookie
///</summary>
///<paramname="name"></param>
///<returns></returns>
privateHttpCookieGetCookieResponse()
{
HttpResponseresponse=HttpContext.Current.Response;
if(response!=null)
{
HttpCookiecookie=response.Cookies[_cookieName];
if(cookie!=null)
{
returncookie;
}
}
returnnewHttpCookie(_cookieName);
}
///<summary>
///仅设置主键的
///</summary>
///<paramname="name"></param>
///<paramname="value"></param>
///<paramname="exMinutes"></param>
publicvoidSetCookie(stringvalue)
{
_theCookie=GetCookieResponse();
_theCookie.Value=HttpUtility.HtmlEncode(AllCommon.Encrypt(value));
if(Math.Abs(_expireMinutes)>1)
{
_theCookie.Expires=DateTime.Now.AddMinutes(_expireMinutes);
}
_theCookie.HttpOnly=_httpOnly;
}
///<summary>
///设置一组主键
///</summary>
///<paramname="name"></param>
///<paramname="keys"></param>
///<paramname="exMinutes"></param>
publicvoidSetCookie(Hashtablekeys)
{
_theCookie=GetCookieResponse();
foreach(DictionaryEntrydeinkeys)
{
_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>
///获取单一的cookie主键值
///</summary>
///<paramname="name"></param>
///<paramname="exMinutes">需要延长的cookie的默认时间</param>
///<returns></returns>
publicstringGetCookie()
{
_theCookie=GetCookieReq();
if(_theCookie==null)
{
returnstring.Empty;
}
stringthevalue=AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Value));
if(thevalue.Length>0)
{
HttpCookieserverCookie=GetCookieResponse();
if(Math.Abs(_expireMinutes)>1)
{
serverCookie.Expires=DateTime.Now.AddMinutes(_expireMinutes);
}
}
returnthevalue;
}
///<summary>
///获取一组对应的cookie值
///</summary>
///<paramname="name"></param>
///<paramname="exMinutes"></param>
///<returns></returns>
publicHashtableGetCookiesKeys()
{
_theCookie=GetCookieReq();
if(_theCookie==null)
{
returnnull;
}
string[]keys=_theCookie.Values.AllKeys;
if(keys.Length>0)
{
HashtablekeyHash=newHashtable();
foreach(stringkeyinkeys)
{
keyHash.Add(key,AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[key])));
}
HttpCookieserverCookie=GetCookieResponse();
if(Math.Abs(_expireMinutes)>1)
{
serverCookie.Expires=DateTime.Now.AddMinutes(_expireMinutes);
}
returnkeyHash;
}
returnnull;
}
///<summary>
///获取一组里面的单一个值
///</summary>
///<paramname="keyname"></param>
///<paramname="exMinutes"></param>
///<returns></returns>
publicstringGetCookieKV(stringkeyname)
{
_theCookie=GetCookieReq();
if(_theCookie==null)
{
returnstring.Empty;
}
stringresult=AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[keyname]));
if(result.Length>0)
{
HttpCookieserverCookie=GetCookieResponse();
if(Math.Abs(_expireMinutes)>1&&serverCookie!=null)
{
serverCookie.Expires=DateTime.Now.AddMinutes(_expireMinutes);
}
}
returnresult;
}
}

演示Asp.Net中对Cookie的基本操作。
复制代码代码如下:

ImportsSystem.Web.HttpContext
PublicClassCookieFramework
"写入单个Cookie
PublicSharedFunctionWriteCookie(ByValCookieNameAsString,ByValCookieValueAsString,ByValExpiresDateAsInteger)AsBoolean
DimaCookieAsNewHttpCookie(CookieName)
aCookie.Value=CookieValue
aCookie.Expires=DateTime.Now.AddDays(ExpiresDate)
System.Web.HttpContext.Current.Response.Cookies.Add(aCookie)
EndFunction

"给Cookie集合添加子项
PublicSharedFunctionWriteCookies(ByValCookieNameAsString,ByValCookieItemAsString,ByValItemValueAsString,ByValExpiresDateAsInteger)AsBoolean
DimaCookieAsHttpCookie
IfCurrent.Request.Cookies(CookieName)IsNothingThen
aCookie=NewHttpCookie(CookieName)
Else
aCookie=Current.Request.Cookies(CookieName)
EndIf
aCookie.Values(CookieItem)=ItemValue
aCookie.Expires=DateTime.Now.AddDays(ExpiresDate)
System.Web.HttpContext.Current.Response.Cookies.Add(aCookie)
EndFunction
"读取单个Cookie
PublicSharedFunctionReadCookie(ByValCookieNameAsString)AsString
IfCurrent.Request.Cookies(CookieName)IsNothingThen
ReturnNothing
Else
ReturnCurrent.Request.Cookies(CookieName).Value
EndIf
EndFunction

"读取Cookie集合中的子项内容
PublicSharedFunctionReadCookies(ByValCookieNameAsString,ByValCookieItemAsString)AsString
IfCurrent.Request.Cookies(CookieName)IsNothingThen
ReturnNothing
Else
IfCurrent.Request.Cookies(CookieName).Values(CookieItem)IsNothingThen
ReturnNothing
Else
ReturnCurrent.Request.Cookies(CookieName).Values(CookieItem)
EndIf
EndIf
EndFunction
"删除整个Cookie
PublicSharedFunctionDeleteCookie(ByValCookieNameAsString)AsBoolean
DimaCookieAsNewHttpCookie(CookieName)
DimiAsInteger
DimlimitAsInteger=Current.Request.Cookies.Count-1
Fori=0Tolimit
aCookie=Current.Request.Cookies(i)
aCookie.Expires=DateTime.Now.AddDays(-1)
Current.Response.Cookies.Add(aCookie)
Next
EndFunction
"删除Cookie集合中的子项
PublicSharedFunctionDeleteCookies(ByValCookieNameAsString,ByValItemNameAsString)AsBoolean
DimaCookieAsHttpCookie=Current.Request.Cookies(CookieName)
aCookie.Values.Remove(ItemName)
aCookie.Expires=DateTime.Now.AddDays(1)
Current.Response.Cookies.Add(aCookie)
EndFunction
EndClass