未在ASHX处理程序

时间:2015-10-28 10:35:53

标签: asp.net cookies httphandler ashx ihttphandler

这是一个单页面应用程序,它使用cookie来保存用户服务器登录的guid。服务器httpgets都包装在一个ASHX文件中,并且都由jQuery $ .ajax()调用。项目中唯一的Web文件是一个htm文件,它托管所有的javascript来实现它。

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

我已将这两行添加到处理程序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。

使用request.Cookies(" name")获取Cookie。值和设置函数如下:

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上的问题是一样的

0 个答案:

没有答案