ASP.NET下对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
相关文章
- asp.net页面的AutoEventWireup=”true”属性设置
- 《ASP.NET Core 6框架揭秘》实例演示:自定义一个服务器
- ASP操作MySQL数据库实现简单便捷功能(asp用mysql数据库)
- 在ASP.NET中实现单点登录
- vb.net验证密码是否复杂的方法
- ASP.NET多次提交的解决办法2
- asp.net下检测SQL注入式攻击代码
- asp.net下生成英文字符数字验证码的代码
- asp.net无法获取的内部内容,因为该内容不是文本的解决方法
- asp.net通过AjaxUpdatePanel回传后滚动条位置变更解决方法
- PHP中调用ASP.NET的WebService的代码
- asp.net数字签名实例代码
- asp.net生成验证码代码(纯中文)
- asp.net生成静态后冗余代码,去掉viewstate生成的代码
- ASP.NET获取MSSQLServer安装实例实现思路及代码
- ASP.NET(VB)写的后台发送短信实现代码
- ASP.Net之Datalist删除功能详解附代码
- ASP.NET防止按钮多次提交核心实现代码
- ASP.NET中DataTable与DataSet之间的转换示例
- Asp.net后台调用js2种方法
- jsp和asp.net共享session值示例代码
- asp.net错误处理Application_Error事件示例
- asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码