ASP.NET HTTP保持连接上下文

本文关键字:连接 上下文 NET HTTP ASP | 更新日期: 2023-09-27 18:09:08

我正在努力在ASP中替换集成的windows身份验证。. NET应用程序通过手动处理NTLM身份验证。NTLM身份验证不是问题,我有一个完整的开源实现的NTLM SSPI模块(https://github.com/FreeRDP/FreeRDP/tree/master/winpr/libwinpr/sspi/NTLM)。我的主要问题是NTLM是面向连接的,而HTTP通常是无状态的。在阅读了NTLM身份验证之后,它被描述为需要使用HTTP Keep-Alive,在这种情况下,每个请求都不会发送cookie。只要连接保持活动状态,NTLM身份验证状态就会保持。

我找到了在IIS中正确启用HTTP keep-alive的方法,但我在ASP中没有找到方法。. NET将数据与特定连接关联。即使在NTLM结束时可以给客户端一个cookie,如果在接收NTLM CHALLENGE和发送NTLM AUTHENTICATE消息之间没有保持会话状态,NTLM也不能完成。显然,当使用IIS内置的集成windows身份验证支持时,它能够跟踪NTLM身份验证多个步骤之间的状态。

我正在寻找的是一种方法来跟踪多个请求进入相同的HTTP连接保持活跃。HttpRequest中的数据似乎只特定于当前请求,并且没有任何东西允许我识别连接。最好的情况是,可以使用一个服务器变量(http://msdn.microsoft.com/en-us/library/ms524602.aspx),如连接临时端口,来标识相同的连接。这可能会起作用,但是我找不到一种方法来可靠地检测关联连接何时关闭。

的想法,有人知道吗?

ASP.NET HTTP保持连接上下文

没有这样的方法来确定当前请求是在新的tcp连接中还是在重用的连接中。

可以通过在http头中发送额外的头来标识当前的tcp连接。