web-dev-qa-db-ja.com

IIS Webサーバーに現在接続しているユーザーを一覧表示します

現在AD(イントラネット)を閲覧しているADユーザーを確認することは可能ですか?IIS Webサーバー?)

6
user1825

HTTPプロトコルに関する理解の問題があります。これは、たとえばFTPのようなものではなく、ユーザーが「ブラウジング」している間、クライアントコンピューターがサーバーコンピューターへの永続的な接続を開いたままにします。クライアントからの接続は一時的です。

そうは言っても、サイトへの認証が必要な場合、サイトのログファイルを使用して、最近ページにアクセスしているユーザーを確認できます。認証を必要としない場合は、クライアントのIPアドレスが表示されるだけです。

5
Evan Anderson

サーバーレベルで個々のユーザーを取得することはできないと思いますが、perfmonカウンターを使用して、アクティブな接続の数を取得できます。

IIS6の場合( Technet Article から):

1. [管理ツール]を開き、[パフォーマンス]をクリックします。

2.システムモニターの詳細ウィンドウを右クリックし、[カウンターの追加]をクリックします。

3.次のいずれかを実行します。

監視コンソールが実行されているコンピューターを監視するには、[ローカルコンピューターのカウンターを使用する]をクリックします。

-または-

監視コンソールが実行されている場所に関係なく、特定のコンピューターを監視するには、[コンピューターからカウンターを選択する]をクリックし、コンピューター名またはIPアドレスを指定します。

4.パフォーマンスオブジェクトで、以下をクリックします。

アクティブなWeb接続を監視するWebサービス。

-または-

アクティブなFTP接続を監視するFTPサービス。

5. [一覧からカウンターを選択する]をクリックし、[現在の接続]を選択します。

6.すべてのインスタンスをクリックします。

7. [追加]をクリックし、[閉じる]をクリックします。

6
squillman

エヴァンの答えを見てください。また、netstat | find ":http"は、直前の時間に接続されたホストを表示します(TIME_WAIT間隔が何であれ)。

JR

4
John Rennie

「現在」の定義はさまざまであるため、問題は難しくなります。

過去10分間または1分間にこのサーバーに誰がアクセスしたかを実際に知る必要がある場合は、いつでもセキュリティイベントログを調べて、ログオンイベントを確認できます。しかし、それは大まかな見積もりにすぎません。

0
Lex Li

Asp.net認証を使用していて、サイトで結果を確認したい場合は、サイトコードからc#で次のコードを使用できます。

using System.Web.Security;

MembershipUserCollection users = Membership.GetAllUsers();
            foreach(MembershipUser user in users)
            {
                if (user.IsOnline) 
                {
                    .
                    .
                }

            }
0
Dov Miller