0

如何检查我的网站是否在远程连接中打开?

我目前正在使用

if (System.Windows.Forms.SystemInformation.TerminalServerSession == true)
{
     terminal = "1";
}
else
{
     terminal = "0";
}

它在 localhost 中运行良好,但是当我发布我的网站时,我总是得到 0,即使我使用远程桌面连接也是如此。有什么建议么?

4

2 回答 2

1

您的代码在服务器上运行。那么它返回关于哪台计算机的信息呢?关于服务器

于 2013-03-01T08:02:00.883 回答
1

Intranet场景中,如果主机正在运行任何远程会话,您可能会阻止来自主机的访问。但是,这也会阻止同时在物理上使用同一台机器的无辜用户。

为了做到这一点,你必须 P/Invoke WTSEnumerateSessions,已经WTSOpenServer编辑了客户端机器(基于 报告的远程地址Request。然后,如果有任何pWinStationName以外的consoleservices,那么在该机器上运行一个远程会话。但是我无法想到将会话和请求关联起来 - 所以你所能做的(正如我在一开始所说的那样)就是在机器运行任何远程会话时阻止来自机器的所有访问。

请注意,您需要相当多的权限才能运行此类代码 - 最好将其隔离到在特权帐户下在您的服务器上运行的单独服务中,而不是授予对您的帐户的访问权限ASP.Net 代码下运行。

于 2013-03-01T08:21:15.427 回答