如何检查我的网站是否在远程连接中打开?
我目前正在使用
if (System.Windows.Forms.SystemInformation.TerminalServerSession == true)
{
terminal = "1";
}
else
{
terminal = "0";
}
它在 localhost 中运行良好,但是当我发布我的网站时,我总是得到 0,即使我使用远程桌面连接也是如此。有什么建议么?
如何检查我的网站是否在远程连接中打开?
我目前正在使用
if (System.Windows.Forms.SystemInformation.TerminalServerSession == true)
{
terminal = "1";
}
else
{
terminal = "0";
}
它在 localhost 中运行良好,但是当我发布我的网站时,我总是得到 0,即使我使用远程桌面连接也是如此。有什么建议么?
您的代码在服务器上运行。那么它返回关于哪台计算机的信息呢?关于服务器。
在Intranet场景中,如果主机正在运行任何远程会话,您可能会阻止来自主机的访问。但是,这也会阻止同时在物理上使用同一台机器的无辜用户。
为了做到这一点,你必须 P/Invoke WTSEnumerateSessions
,已经WTSOpenServer
编辑了客户端机器(基于 报告的远程地址Request
。然后,如果有任何pWinStationName
以外的console
和services
,那么在该机器上运行一个远程会话。但是我无法想到将会话和请求关联起来 - 所以你所能做的(正如我在一开始所说的那样)就是在机器运行任何远程会话时阻止来自机器的所有访问。
请注意,您需要相当多的权限才能运行此类代码 - 最好将其隔离到在特权帐户下在您的服务器上运行的单独服务中,而不是授予对您的帐户的访问权限ASP.Net 代码下运行。