asp.net Cookie处理类

来源:互联网 发布:c语言的软件是什么 编辑:程序博客网 时间:2024/06/03 18:46

using System;
using System.Web;
using System.Web.Security;
 
namespaceOIFrameWork.Common
{
    publicclass CookieFunction
    {
        privatestatic CookieFunction _instance;
        publicstatic readonlyobject CookieFunctionObj =new object();
 
        publicstatic CookieFunction GetInstance()
        {
            if(_instance != null)
                return_instance;
            lock(CookieFunctionObj)
            {
                return_instance ?? ( _instance = newCookieFunction() );
            }
        }
 
        publicbool 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);
                returntrue;
            }
            catch
            {
                returnfalse;
            }
        }
 
        /// <summary>
        /// 读取Cookies
        /// </summary>
        /// <param name="strName">主键</param>
        /// <returns></returns>
        publicstring GetCookie(stringstrName)
        {
            var cookie = HttpContext.Current.Request.Cookies[strName];
            returncookie != null? cookie.Value : null;
        }
 
        /// <summary>
        /// 删除Cookies
        /// </summary>
        /// <param name="strName">主键</param>
        /// <returns></returns>
        publicbool DelCookie(stringstrName)
        {
            try
            {
                var cookie =new HttpCookie(strName)
                {
                    Expires = DateTime.Now.AddDays(-1)
                };
                //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
                HttpContext.Current.Response.Cookies.Add(cookie);
                returntrue;
            }
            catch
            {
                returnfalse;
            }
        }
 
        publicvoid QuitCookie()
        {
            FormsAuthentication.SignOut();
        }
    }
}
0 0
原创粉丝点击