测试页:testCookie.aspx,它在ForCookieUnit目录下,
ForCookieUnit是在程序目录。testCookie.aspx代码如下
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Path = "CookieUnit";//只把这句写上就不能生成Cookie,去掉就可以。
Response.Cookies.Add(hc);
} protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"];// Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}
什么就是不行呢???我眼睛都绿了。请明白人告诉我。
看MSDN说,Path 属性扩展 Domain 属性,难道要设Domain,可是本地如何高Domain,测试呢??
ForCookieUnit是在程序目录。testCookie.aspx代码如下
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Path = "CookieUnit";//只把这句写上就不能生成Cookie,去掉就可以。
Response.Cookies.Add(hc);
} protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"];// Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}
什么就是不行呢???我眼睛都绿了。请明白人告诉我。
看MSDN说,Path 属性扩展 Domain 属性,难道要设Domain,可是本地如何高Domain,测试呢??
解决方案 »
- 用Parameters再ACCESS中没有问题 再MSSQL中说@p1有语法问题 求解
- 数据备份
- 急 Rating控件中不显示星星
- 毕业了找不到工作,愁!!!
- 请问:如何向window.showModalDialog()的页面传值(服务器端)?以及从该页面取得返回值?
- 请问这句啥意思? lock(typeof(SQLAccessFactory)){...}
- 请问c#如何调用session里面对象的方法
- 如何消除每个客户留下连接?
- [百分求教]请教一个URLRewrite的问题
- 超链接列的数据绑定问题.
- 数据在数据库里面 如何用asp.net来做在网页上显示曲线图
- 如何提取GridView第一行的DataKeyNames属性值--在线等
真是晕了倒,直等高人现身了。
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Domain = "localhost";
hc.Path = "/CookieUnit";
Response.Cookies.Add(hc);
} protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"]; Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}
欢迎访问我的视频搜索引擎:V掌门:http://www.vzhangmen.com
我马上试试,好了立即给分。
谢谢大家回贴。
我这里测试时出错(粘的你的代码)未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 37: HttpCookie getcookies = Request.Cookies["ForCookieUnit"];
行 38:
行 39: Response.Write(getcookies.Value.ToString());
行 40: Response.Write("<br/>" + getcookies["one"].ToString());
行 41: Response.Write("<br/>" + getcookies["two"].ToString());
源文件: c:\Inetpub\wwwroot\StudentVS2005\CookieUnit\Test_CookieDomain.aspx.cs 行: 39 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
CookieUnit_Test_CookieDomain.Button2_Click(Object sender, EventArgs e) in c:\Inetpub\wwwroot\StudentVS2005\CookieUnit\Test_CookieDomain.aspx.cs:39
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
说明,还是没有写上cookie
protected void Button2_Click(object sender, EventArgs e)
{
if (Request.Cookies.Count > 0)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"]; Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}
}
2. 那个Path并不是用来给你保存cookie的路径,cookie保存的路径应该是在 C:\Documents and Settings\Administrator\Cookies 下(如果是永久cookie的话)
3. 你应该知道cookie是保存在客户端的,你居然到服务器的path下找,你不觉得你的概念上有严重问题么?
而在我们本机是比较难以做这样的设置的//所以如果你的机器并没有设置过域名的话,你就用默认值string.Empty测试吧
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Domain = string.Empty;
Response.Cookies.Add(hc);
} protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"]; Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}还有楼主,到这里是来探讨问题的,请注意你的言辞。
===========================================================
因此,可以被www.qq.com games.qq.com news.qq.com等共享
//所以如果你的机器并没有设置过域名的话,你就用默认值string.Empty测试吧
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Domain = string.Empty;
Response.Cookies.Add(hc);
} protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie getcookies = Request.Cookies["ForCookieUnit"]; Response.Write(getcookies.Value.ToString());
Response.Write("<br/>" + getcookies["one"].ToString());
Response.Write("<br/>" + getcookies["two"].ToString());
}这段代码,按的理解是不是就可以通过了呢??我重新建的项目,并测试,结果还是没有通过。
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 39: HttpCookie getcookies = Request.Cookies["ForCookieUnit"];
行 40:
行 41: Response.Write(getcookies.Value.ToString());
行 42: Response.Write("<br/>" + getcookies["one"].ToString());
行 43: Response.Write("<br/>" + getcookies["two"].ToString());
源文件: c:\Inetpub\wwwroot\StudentVS2005\CookieUnit\Test_CookieDomain.aspx.cs 行: 41 显然,还是程序还是没有找到Cookie,也就是说没有生成cookie
hc.Domain = string.Empty;
我这里是100%成功C:\Documents and Settings\Administrator\Cookies 文件夹下也生成了
administrator@localhost[1].txt
hc.Path = "/CookieUnit";测试正确的例子:
http://127.0.0.1/ForCookieUnit/testCookie.aspx
文件内容:
<%@ Page Language="C#" validateRequest="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("ForCookieUnit");
hc.Value = "ABCDEF";
hc["one"] = "item1";
hc["two"] = "item2";
hc.Expires = DateTime.Now.AddHours(1d);
hc.Path = "/CookieUnit";
Response.Cookies.Add(hc);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:Button ID="btnUpload" runat="server" Text="Save" OnClick="Button1_Click"></asp:Button>
</form>
</body>
</html>
查看页面
http://127.0.0.1/CookieUnit/GetCookie.aspx
<%@ Page Language="C#" validateRequest="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
if(Request.Cookies["ForCookieUnit"]!= null)
{
msg.Text = "测试:" + Request.Cookies["ForCookieUnit"]["one"];
}
else
{
msg.Text = "null";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:Label id="msg" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Save" OnClick="Button1_Click"></asp:Button>
</form>
</body>
</html>
如果这两个目录都是应用程序的普通目录的话(这里的测试是这样设置的),应该是没有问题的
打算,散完分,就睡了,可是一看net_lover(【孟子E章】的回复,让我又觉得有了些希望。可是一细看,和我的代码也没有区别,可是又看了第一遍才发现“测试正确的例子”,忽然想会不会是测试的问题呢,照着孟子的方法一测,OK,万岁,我的一天没有白费,这方便面味太好……,以前没有看过net_lover(【孟子E章】) ,今天才知CSDN有钻石有真才啊。我心里高兴,谢谢net_lover(【孟子E章】) ,谢谢高歌,谢谢老天,没让我的努力浪费,我终于知道了。
才发觉,强人不是盖的,他能让不好吃的泡面变得如此美味,谢谢,谢谢[太激动了,谢谢net_lover(【孟子E章】]