在程序中使用Cookie集合

在程序开发中,Insus.NET使用Cookie时,很少使用如http://www.cnblogs.com/insus/articles/2055310.html的写法。习惯写成Cookie集合,什么叫做Cookie集合,即是说一个Cookie,它拥有多个值。下面一系列演示,是怎样创建Cookie集合与使用。 

复制代码
InsusBiz
using System;
using System.Web;

/// <summary>
/// Summary description for InsusBiz
/// </summary>
public class InsusBiz
{
    
private static HttpResponse Response
    {
        
get
        {
            
return HttpContext.Current.Response;
        }
    }

    
private static HttpRequest Request
    {
        
get
        {
            
return HttpContext.Current.Request;
        }
    }

    
//定义一个Cookie集合
    private static HttpCookie InsusCookie
    {
        
get
        {
            
return Request.Cookies["InsusCookie"as HttpCookie;
        }
        
set
        {
            
if (Request.Cookies["InsusCookie"!= null)
            {
                Request.Cookies.Remove(
"InsusCookie");
            }
            Response.Cookies.Add(value);
        }
    }

    
//New Cookie集合
    private static HttpCookie NewInsusCookie
    {
        
get
        {
            HttpCookie httpCookie 
= new HttpCookie("InsusCookie");
            
return httpCookie;
        }
    }

    
//Remove Cookie集合
    public static void RemoveInsusCookie()
    {
        
if (InsusCookie == null)
            Response.Cookies.Remove(
"InsusCookie");
        
else
            Response.Cookies[
"InsusCookie"].Expires = DateTime.Now.AddDays(-1);
    }
    

    
//创建一个Cookie,判断用户登录状态
    public static bool LoginOk
    {
        
get
        {
            
return InsusCookie == null ? false : bool.Parse(InsusCookie.Values["LoginOk"]);
        }
        
set
        {
            HttpCookie httpCookie 
= InsusCookie == null ? NewInsusCookie : InsusCookie;
            httpCookie.Values[
"LoginOk"= value.ToString();
            InsusCookie 
= httpCookie;
        }
    }


    
//创建登录用户的帐号,整站使用
    public static string MemberId
    {
        
get
        {
            
return InsusCookie == null ? string.Empty : InsusCookie.Values["MemberId"];
        }
        
set
        {
            HttpCookie httpCookie 
= InsusCookie == null ? NewInsusCookie : InsusCookie;
            httpCookie.Values[
"MemberId"= value;
            InsusCookie 
= httpCookie;
        }
    }

    
//如果还有整站使用的Cookie可以写在此,可以参考LoginOK或MemberId的写法。
}
复制代码

  

在应用时,你会看到InsusBiz类别下有LoginOk,MemberId和RemoveInsusCookie等属性:

 

 

 在程序中怎样使用这些cookie呢?如在登录验证成功之后,你需要把登录状态与登录的ID写入Cookie中

 InsusBiz.LoginOk = true;
 InsusBiz.MemberId = xxx;

 

在判断用户是否登录时,可以这个去判断:

复制代码
View Code
 protected void Page_Load(object sender, EventArgs e)
    {
        
if (!InsusBiz.LoginOk)
        {
            
//你没有登录

        }
    }
复制代码

 

如果想在任何位置,想取出登录ID:

View Code
string memberId = InsusBiz.MemberId;

 

最后想说的,你想移除Cooke,就可以使用InsusBiz.RemoveInsusCookie就可以了,因为它会把Cookie的过期时间变更为过去。这个通常应用在用户Sign out的事件上。

 

posted @   Insus.NET  阅读(1901)  评论(5编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示