Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 未在ASHX处理程序中保存Cookie_Asp.net_Cookies_Httphandler_Ashx_Ihttphandler - Fatal编程技术网

Asp.net 未在ASHX处理程序中保存Cookie

Asp.net 未在ASHX处理程序中保存Cookie,asp.net,cookies,httphandler,ashx,ihttphandler,Asp.net,Cookies,Httphandler,Ashx,Ihttphandler,这是一个单页应用程序,它使用cookie保存用户服务器登录的guid。服务器httpget都打包到一个ASHX文件中,并由jQuery$.ajax()调用。该项目中唯一的web文件是一个htm文件,它承载了所有javascript来实现它 当我使用Response.cookie设置cookie时,当我将其检查为Request.cookie时,我会得到一个不同的值,当我设置Response.cookie时,相应的Request.cookie在下次访问服务器时仍然包含一些旧值,而不是刚刚设置的值 我

这是一个单页应用程序,它使用cookie保存用户服务器登录的guid。服务器httpget都打包到一个ASHX文件中,并由jQuery$.ajax()调用。该项目中唯一的web文件是一个htm文件,它承载了所有javascript来实现它

当我使用Response.cookie设置cookie时,当我将其检查为Request.cookie时,我会得到一个不同的值,当我设置Response.cookie时,相应的Request.cookie在下次访问服务器时仍然包含一些旧值,而不是刚刚设置的值

我已将这两行添加到handler ASHX文件中:

Implements System.Web.SessionState.IRequiresSessionState
Implements System.Web.SessionState.IReadOnlySessionState
我还将IsReusable属性更改为true:

ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return True     
    End Get
End Property
上述两项改变都没有帮助

当我检查Session.SessionID时,它在每个服务器调用上都是不同的,我怀疑这是问题的根源——它不应该是相同的吗

web服务器是Visual Studio 2015调试web服务器,而不是IIS

Cookies是使用request.Cookies(“name”).Value获取的,设置函数如下:

Public Sub SetCookie(ByVal Response As System.Web.HttpResponse, ByVal sCookie As String, ByVal sValue As String, Optional ByVal lTimePeriodMinutes As Integer = 30 * 24 * 60)

    sCookie = sCookie.ToLower

    Response.Cookies.Remove(sCookie)

    Dim obj As New System.Web.HttpCookie(sCookie, sValue)
    obj.Expires = DateAdd(Microsoft.VisualBasic.DateInterval.Minute, lTimePeriodMinutes, Now)
    Response.Cookies.Add(obj)

End Sub
以上内容在旧版本的应用程序上已经运行多年


IE和Firefox上的问题相同

您应该在HttpHandlerHandler中实现一个接口,而不是同时实现两个接口。试试我的要求,谢谢。我以为我已经试过了,但在我再次尝试之前,问题就消失了。我想发生的事情是,有一种“挂起”的cookie拒绝消失,我一删除cookies,它就开始工作(在IE和FF中)。我仍在研究它,并将尽快发布更新,确认删除cookies将永久修复它。更改类的“实现”似乎会使cookie变为鬼影,而不是出现旧的cookie值。。奇怪!您应该在HttpHandlerHandler中实现一个接口,而不是同时实现两个接口。试试我的要求,谢谢。我以为我已经试过了,但在我再次尝试之前,问题就消失了。我想发生的事情是,有一种“挂起”的cookie拒绝消失,我一删除cookies,它就开始工作(在IE和FF中)。我仍在研究它,并将尽快发布更新,确认删除cookies将永久修复它。更改类的“实现”似乎会使cookie变为鬼影,而不是出现旧的cookie值。。奇怪!