经典ASP转储会话变量(没有认证)

时间:2016-09-13 21:29:19

标签: asp.net vb.net vbscript asp-classic

我继承了一个经典ASP站点和一个“插件”ASP.NET站点......

既然正在使用身份验证,BOTH双方都有一个手动“重新发明轮子”(硬编码)安全系统,该系统验证来自SQL 2000数据库的用户/ pw(即“如果通过SQL SELECT找到用户” ,让他们进入“)。

新的开发是在ASP.NET中......他们通过一次登录(如上所述)在Classic ASP端“集成”了两个站点...然后传递一个GUID(在登录时保存到用户记录)他们在ASP.NET端验证GUID(“是的,这是正确的GUID,因此这是我的用户......让他们进去”)。

到目前为止,这一直在使用一个方向(经典ASP到ASP.NET),但没有任何问题。

(解决问题,忍受我......)

现在,他们希望通过更新GUID,将其传回,查找验证用户的位置,将它们发送到正确的经典ASP页面来执行从ASP.NET到Classic ASP的相同基本设计...(因此用户可以返回到经典ASP方面,无需重新登录,以前需要)HOWEVER ...

***这是问题所在 会话(“UserID”)在Classic ASP端用于(硬编码)验证用户...然后运行Response.Redirect将它们发送回之前通过“sRedirectToString”留下的页面...

    'user is found in DB, so send them to the correct page...
    Dim sRedirectToString = 'the correct url
    Call Response.Redirect (sRedirectToString)

然而,会话(“UserID”)被IIS或IE(dun'no)清除,并且(硬编码)验证失败,因为Session(“UserID”)为NULL(空白)

这是简单的(仅)验证:

    If Trim(Session("UserID") & "") = "" Then
        'Session timed out
        Response.Redirect('the denied page)
    Else
        Response.Write "<meta http-equiv=""X-UA-Compatible"" content=""IE=EmulateIE7"">"
    End If

那么,为什么重定向会清除会话变量? (没有使用其他系统身份验证)。

没有Session.Abort,也没有任何正在清除会话的特定编码(“UserID”)。

但是当测试Session(“UserID”)时(见上面的代码),它被发现为空并重定向到DENIED.asp页面。

所以,希望有一些属性,比如我可以设置的“PersistSessionVariables”(或其他东西),所以他们不清楚......

但是,在重定向之后,他们会立即变得清晰,并且这会让我感到困惑。

我感谢所有奇才的帮助!

0 个答案:

没有答案