asp.net Cookie跨域、虚拟目录等设置方法

 更新时间:2009年11月12日 19:37:57   作者:  
Cookie跨域、虚拟目录等设置方法,需要的朋友可以参考下。
Cookie有三个属性需要注意一下:
. Domain 域
. Path 路径
. Expires 过期时间

跨域操作需要设置域属性:
Response.Cookies("MyCookie").Domain = "jb51.net"; (这里指的是泛域名)
这样在其它二级域名下就都可以访问到了, ASP 和 ASP.NET 测试通过

虚拟目录下访问:
我在ASP端做了下测试,.NET的没试, 如果不指定Path属性, 不同虚拟目录下Cookie无法共享
将Response.Cookies("MyCookie").Path = "/" 就可以了

总的写法:
复制代码 代码如下:

Response.Cookies("MyCookie").Domain = "jb51.net";
Response.Cookies("MyCookie").Path = "/"
Response.Cookies("MyCookie").Expires = Now + 365;
Response.Cookies("MyCookie")("Test") = "test";

.NET 清除Cookie
复制代码 代码如下:

HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
if (cookie != null)
{
cookie.Values.Clear();
SetUserCookieExpireTime(cookiename, -1);
cookie.Domain = _domain;
System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
}
public static void SetUserCookieExpireTime(string key, int days)
{
System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;
System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;
System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);
}

.NET 添加/更新Cookie
复制代码 代码如下:

public static void AddUserCookies(string key,string value, string cookiename, string domain)
{
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
if (cookie == null)
{
cookie = new HttpCookie(cookiename);
cookie.Domain = domain;
cookie.Path = _cookiepath;

cookie.Values.Add(key, value);
HttpContext.Current.Response.AppendCookie(cookie);
}
else
{
if (System.Web.HttpContext.Current.Request.Cookies[cookiename].Values[key] != null)
{
cookie.Values.Set(key, value);
}
else
{
cookie.Domain = domain;
cookie.Path = _cookiepath;

cookie.Values.Add(key, value);
HttpContext.Current.Response.AppendCookie(cookie);
}
}
}

身份验证Cookie域,什么意思?

默认情况下,Cookie 与特定的域相关联。例如,如果您的站点是 www.jb51.net,那么当用户向该站点请求页面时,您编写的 Cookie 就被发送到服务器。(有特定路径值的 Cookie 除外。) 如果您的站点有子域(例如 jb51.net、s.jb51.net 和 tools.jb51.net),就可以把 Cookie 同特定的子域相关联。为此,需要设置 Cookie 的 Domain 属性,如下所示:
复制代码 代码如下:

Response.Cookies("domain").Value = DateTime.Now.ToString
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "s.jb51.net"

如果按照这种方式设置域,则 Cookie 只能用于指定子域中的页面。

您也可以利用 Domain 属性来创建可在多个子域中共享的 Cookie。例如,对域进行如下设置:
复制代码 代码如下:

Response.Cookies("domain").Value = DateTime.Now.ToString
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "jb51.net"

这样,该 Cookie 就可用于主域、s.jb51.net 和 tools.jb51.net。

相关文章

  • 在Framework4.0中实现延迟加载的实现方法

    在Framework4.0中实现延迟加载的实现方法

    延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。
    2011-08-08
  • asp.net下降文本格式数据导入到数据库中的代码

    asp.net下降文本格式数据导入到数据库中的代码

    导入文本格式数据到数据库中的代码,需要的朋友可以参考下。
    2010-05-05
  • WPF数据驱动修改绑定

    WPF数据驱动修改绑定

    这篇文章介绍了WPF数据驱动修改绑定的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • ASP.NET缓存管理的几种方法

    ASP.NET缓存管理的几种方法

    在解释ASP.NET中的缓存管理之前,我先澄清一下,不同的人使用不同的术语来解释同样的概念,有些人把它描述为状态管理,有些人描述为缓存管理。我喜欢用缓存管理,或许是因为我喜欢这个词“Cache”吧。 但是就所指含义来说,它们两个没有区别。现在让我们来探讨一下在ASP.NET环境下缓存管理的各个方面吧。
    2012-12-12
  • ASP.NET开发者使用jQuery应该了解的几件事情

    ASP.NET开发者使用jQuery应该了解的几件事情

    如果你是有着APS.NET开发背景的人员,那么jQuery的几个概念建议你应该忘掉。像使用其它的framework一样,你应该学习一下jQuery的所有语法等约定来让它更好的为你服务。
    2009-09-09
  • 使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因解析

    使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因解析

    这篇文章主要介绍了使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • asp.net 获取文件夹中的图片的代码

    asp.net 获取文件夹中的图片的代码

    asp.net 获取文件夹中的图片的代码,需要的朋友可以参考下。
    2011-12-12
  • UrlRewrite概念原理及使用方法解析

    UrlRewrite概念原理及使用方法解析

    这篇文章主要介绍了UrlRewrite概念原理及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Asp.Net MVC记住用户登录信息下次直接登录功能

    Asp.Net MVC记住用户登录信息下次直接登录功能

    有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了!这篇文章主要介绍了Asp.Net MVC记住用户登录信息下次直接登录功能,需要的朋友可以参考下
    2018-09-09
  • 微信公众平台开发之处理图片.Net代码解析

    微信公众平台开发之处理图片.Net代码解析

    这篇文章主要为大家详细解析了微信公众平台开发之处理图片.Net代码,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论