cookies的怪问题,分不够可在加
Dim ctrCookie As HttpCookie = New HttpCookie("StrUser")
dd = RadioField.Text
Dim Cookies_Time As DateTime = DateAdd("d", dd, System.DateTime.Now)
With ctrCookie
.Expires = Cookies_Time
.Value = Session("User")
.Domain = "洛林(renaski)"
'参数以后可以扩展
End With
Response.Cookies.Add(ctrCookie)
Response.Write(Request.Cookies("StrUser").Value)
这个是写进去的,通过验证,没有问题。
提交了后页面刷新
随后在页面的顶部有段取的代码
Dim ctrCookie As HttpCookie = New HttpCookie("StrUser")
ctrCookie = Request.Cookies("StrUser")
If Not ctrCookie Is Nothing Then
Session("User") = Request.Cookies("StrUser").Value
Response.Write(Session("User"))
...
end if
这里
Session("User") = Request.Cookies("StrUser").Value
报错
错误内容为
"
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
"
也就是说留在客户端的cookies取不到。
再去看了web.config
cookieless="false"
这个没错,我没有禁用。当然,禁用的话,我前面也是取不到的
但为什么我一刷新或者转到其他的页面这个cookies就消失了呢?我也没有去remove啊。
然后查了SDK
http://chs.gotdotnet.com/quickstart/aspplus/doc/stateoverview.aspx
他里面居然这样写
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Request.Cookies("preferences1") = Null Then
Dim cookie As New HttpCookie("preferences1")
cookie.Values.Add("ForeColor", "black")
...
Response.AppendCookie(cookie)
End If
End Sub
不是说VB.Net不支持Null的吗?