0

Web サイトがリモート接続で開かれているかどうかを確認する方法は?

私は現在使用しています

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

localhost では正常に動作しますが、リモート デスクトップ接続を使用している場合でも、Web サイトを公開すると常に 0 になります。助言がありますか?

4

2 に答える 2

1

コードはサーバー上で実行されます。では、どのコンピュータに関する情報が返されるのでしょうか? サーバーについて。

于 2013-03-01T08:02:00.883 に答える
1

イントラネットのシナリオでは、リモートセッションを実行ているホストからのアクセスをブロックできます。ただし、これにより、同じマシンを同時に物理的に使用している罪のないユーザーもブロックされます。

これを行うには、(によって報告されたリモート アドレスに基づいて) クライアント マシンWTSEnumerateSessionsを ed して、 P/Invoke を実行する必要があります。次に、と以外のものがある場合は、そのマシンでリモート セッションが実行されています。セッションとリクエストを相互に関連付ける方法は考えられません。そのためリモート セッションを実行しているマシンからのすべてのアクセスをブロックすることしかできません (冒頭で述べたように) 。WTSOpenServerRequestpWinStationNameconsoleservices

そのようなコードを実行できるようにするには、非常に多くのアクセス許可が必要になることに注意してください。アカウントへのアクセスを許可するのではなく、特権アカウントでサーバー上で実行されている別のサービスにコードを分離することで、おそらく最善のサービスが得られるでしょう。 ASP.Net コードが実行されています。

于 2013-03-01T08:21:15.427 に答える