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啊。
然后查了SDKhttp://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的吗?

解决方案 »

  1.   

    我刚付好cookies的value后是取的到的,但是只要一刷新或者到其他的页面了,就取不到了。怪啊
      

  2.   

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Session("user") = "" Then
                Dim ctrCookie As HttpCookie = New HttpCookie("StrUser")
                Dim Cookies_Time As DateTime = DateAdd("d", 30, System.DateTime.Now)
                Session("User") = "aa"
                With ctrCookie
                    .Expires = Cookies_Time
                    .Value = Session("User")
                    .Domain = "洛林(renaski)"
                    '参数以后可以扩展
                End With
                Response.Cookies.Add(ctrCookie)
                Response.Write("bb")
            End If
            If Session("user") = "aa" Then
                Response.Write(Request.Cookies("StrUser").Expires)
                Response.Write(Request.Cookies("StrUser").Value)
                Response.Write("rr")
            End If
        End Sub
    这样的也错了,不知道为什么?
      

  3.   

    把.Domain = "洛林(renaski)"去掉就可以了,谢谢鸭子
    :)