using
System;
using
System.Web;
using
System.Web.Security;
namespace
OIFrameWork.Common
{
public
class
CookieFunction
{
private
static
CookieFunction _instance;
public
static
readonly
object
CookieFunctionObj =
new
object
();
public
static
CookieFunction GetInstance()
{
if
(_instance !=
null
)
return
_instance;
lock
(CookieFunctionObj)
{
return
_instance ?? ( _instance =
new
CookieFunction() );
}
}
public
bool
InsertCookie(String userCode,String loginName,
int
outMinutes)
{
try
{
var ticket =
new
FormsAuthenticationTicket(1, userCode,
DateTime.Now, DateTime.Now.AddMinutes(outMinutes),
true
, loginName,
FormsAuthentication.FormsCookiePath);
var key = FormsAuthentication.Encrypt(ticket);
var hkCookie =
new
HttpCookie(FormsAuthentication.FormsCookieName, key)
{
Domain = FormsAuthentication.CookieDomain
};
HttpContext.Current.Response.Cookies.Add(hkCookie);
return
true
;
}
catch
{
return
false
;
}
}
/// <summary>
/// 读取Cookies
/// </summary>
/// <param name="strName">主键</param>
/// <returns></returns>
public
string
GetCookie(
string
strName)
{
var cookie = HttpContext.Current.Request.Cookies[strName];
return
cookie !=
null
? cookie.Value :
null
;
}
/// <summary>
/// 删除Cookies
/// </summary>
/// <param name="strName">主键</param>
/// <returns></returns>
public
bool
DelCookie(
string
strName)
{
try
{
var cookie =
new
HttpCookie(strName)
{
Expires = DateTime.Now.AddDays(-1)
};
//Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
HttpContext.Current.Response.Cookies.Add(cookie);
return
true
;
}
catch
{
return
false
;
}
}
public
void
QuitCookie()
{
FormsAuthentication.SignOut();
}
}
}