使用Javascript创建的Cookie在C#代码中不可访问..任何原因或其他选择
Cookie Created using Javascript , is not accessible in C# code....Any reason or other option?
我正在使用cookie,我碰巧使用JavaScript创建了它,但当我试图在进程完成后使用C#代码隐藏文件使该cookie过期时,我找不到指定的cookie??
这可能是什么原因??我认为用JavaScript创建的cookie无法使用C#访问/可见。。。?这是真的吗??
这是我在JS 中创建cookie的代码
var expiryDate = new Date();
expiryDate.setTime(expiryDate.setDate(expiryDate.getDate() + 1)); // 365 days
document.cookie = "ReferedCookie=" + "clientId=" + UserGuid + "&productId=" + productId + "&Token=" + token + ";" + "expires=" + expiryDate.toGMTString() + ";";
这是我的C#代码,用于查找和过期cookie
public void DeleteCookie(string Name)
{
if (System.Web.HttpContext.Current.Request.Cookies["ReferedCookie"] != null)
{
HttpCookie myCookie = new HttpCookie(Name);
myCookie.Expires = DateTime.Now.AddDays(-5d);
System.Web.HttpContext.Current.Response.Cookies.Add(myCookie);
}
}
提前谢谢。
问题可能与cookie的Path
属性有关。
使用Javascript设置cookie时,cookie的默认路径将基于设置cookie的页面的位置。
为了使cookie过期,您必须指定相同的路径。所以如果你有一个页面:
http://test.foo.com/somepath/default.asxp
如果您使用问题中的javascript代码在该页面上设置cookie,则cookie的默认路径为:
/somepath/
这意味着浏览器会将此cookie发送到该路径下的所有页面。它不会发送到该路径之外的页面。
要使服务器上的cookie过期,您需要指定cookie的路径:
HttpCookie myCookie = new HttpCookie(Name);
myCookie.Expires = DateTime.Now.AddDays(-5d);
myCookie.Path = "/somepath/";
System.Web.HttpContext.Current.Response.Cookies.Add(myCookie);
或者,您必须在最初将cookie设置为(例如)/
:时指定路径
document.cookie = "ReferedCookie=" + "clientId=" + UserGuid + "&productId=" + productId + "&Token=" + token + ";" + "expires=" + expiryDate.toGMTString() + ";path=/";
然后在同一路径上使其过期。
使用一个函数来实现这一点很好,可以最大限度地减少出错的机会:
function set_cookie(name, value, expires, path, domain, secure)
{
var cookie_string = name + "=" + escape ( value );
if(expires)
{
cookie_string += "; expires=" + expires.toGMTString();
}
if(path)
cookie_string += "; path=" + escape ( path );
if(domain)
cookie_string += "; domain=" + escape ( domain );
if(secure)
cookie_string += "; secure";
document.cookie = cookie_string;
}
然后在你的情况下,这样称呼它:
var value = "clientId=" + UserGuid + "&productId=" + productId + "&Token=" + token;
var expiryDate = new Date();
expiryDate.setTime(expiryDate.setDate(expiryDate.getDate() + 1)); // 365 days
set_cookie("ReferedCookie", value, expiryDate);
DeleteCookie("ReferedCookie");
public void DeleteCookie(string Name)
{
if (System.Web.HttpContext.Current.Request.Cookies[Name] != null)
{
HttpCookie myCookie = new HttpCookie(Name);
myCookie.Expires = DateTime.Now.AddDays(-5d);
System.Web.HttpContext.Current.Response.Cookies.Add(myCookie);
}
}
相关文章:
- Angular使服务可以从任何地方访问
- 如何访问高图表工具提示中的任何特定数据
- 使用Javascript创建的Cookie在C#代码中不可访问..任何原因或其他选择
- IOS自动化:有没有办法;刷新'元素树(或者Instruments'认为可以访问和不能访问的任何内容)
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 可以't在对另一个数组排序后访问任何数组
- 有没有任何方法可以从javascript进行跨域请求,并访问它可能生成的错误响应类型(401404等)
- 如何访问迭代模板中的任何元素
- 是否有任何方法可以访问外部范围's变量
- Javascript:是否有任何后门方法来访问数组的真正隐藏/私有长度属性
- 如何获取用户访问的任何新网站的 URL
- 使用 java 访问任何网页的文本字段和按钮
- 从任何客户端访问帆船应用程序
- 在javascript中,在函数名被指向其他地方之后,是否有任何方法可以访问该未命名的函数
- 需要有关在不使用任何服务器的情况下使用JavaScript访问JSON文件的帮助
- "Don't允许访问剪贴板“;不会'不允许在文本框中键入任何内容
- 任何方式访问磁力计输入chrome android
- 任何方式访问量角器的功能,从每个单独的规格
- event是一个全局变量,可以在回调链中的任何位置访问
- Javascript封装——以任何方式访问给定实例的私有成员