列出当前连接到IIS Web服务器的人员

是否有可能看到哪些AD用户正在浏览内部(Intranet)IIS Web服务器?

你有一个HTTP协议的理解问题。 它不像FTP那样,当用户“浏览”的时候,客户端计算机在服务器计算机上保持持续的连接。 来自客户的连接是暂时的。

话虽如此,假设您要求对站点进行身份validation,则可以使用该站点的日志文件来查看最近访问页面的人员。 如果你不需要authentication,你只会看到客户端的IP地址。

我不认为你可以得到在服务器级别的个人用户,但你可以用perfmon计数器来计算有多less活动连接。

对于IIS6(来自Technet文章 ):

1.打开pipe理工具,然后单击性能。

2.右键单击“系统监视器”详细信息窗格,然后单击“添加计数器”。

3.请执行以下任一操作:

要监视运行监视控制台的任何计算机,请单击使用本地计算机计数器。

-要么-

要监视特定计算机(不pipe监视控制台的运行位置),请单击从计算机中select计数器,然后指定计算机名称或IP地址。

4.在Performance对象中,单击:

Web服务来监视活动的Web连接。

-要么-

FTP服务来监视活动的FTP连接。

5.从列表中select计数器,然后select当前连接。

6.单击所有实例。

7.单击添加,然后单击closures。

见埃文的答案。 还有netstat | find“:http”会显示哪些主机在最后一分钟左右连接(无论TIME_WAIT时间间隔是多less)。

JR

由于“当前”的定义各不相同,这个问题变得很难。

如果实际上您需要知道谁在最近10分钟或1分钟内访问过此服务器,则可以随时查看安全事件日志以检查login事件。 但这只是一个粗略的估计。

如果您使用的是asp.net身份validation,并且想要通过您的站点查看结果,则可以在站点代码中使用c#中的以下代码:

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