在程序开发中,Insus.NET使用Cookie时,很少使用如http://www.cnblogs.com/insus/articles/2055310.html的写法。习惯写成Cookie集合,什么叫做Cookie集合,即是说一个Cookie,它拥有多个值。下面一系列演示,是怎样创建Cookie集合与使用。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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的写法。
}
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;
在判断用户是否登录时,可以这个去判断:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
protected
void
Page_Load(
object
sender, EventArgs e)
{
if ( ! InsusBiz.LoginOk)
{
// 你没有登录
}
}
{
if ( ! InsusBiz.LoginOk)
{
// 你没有登录
}
}
如果想在任何位置,想取出登录ID:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
string
memberId
=
InsusBiz.MemberId;
最后想说的,你想移除Cooke,就可以使用InsusBiz.RemoveInsusCookie就可以了,因为它会把Cookie的过期时间变更为过去。这个通常应用在用户Sign out的事件上。