![列出当前连接到 IIS Web 服务器的用户](https://linux22.com/image/483957/%E5%88%97%E5%87%BA%E5%BD%93%E5%89%8D%E8%BF%9E%E6%8E%A5%E5%88%B0%20IIS%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7.png)
是否可以查看哪些 AD 用户当前正在浏览内部(内联网) IIS Web 服务器?
答案1
您对 HTTP 协议的理解存在问题。它不像 FTP,在 FTP 中,当用户“浏览”时,客户端计算机会保持与服务器计算机的持续连接。来自客户端的连接是短暂的。
话虽如此,假设您需要对网站进行身份验证,您可以使用网站的日志文件查看最近访问过页面的人。如果您不需要身份验证,那么您只会看到客户端 IP 地址。
答案2
我认为您无法在服务器级别获取单个用户,但您可以使用性能计数器来获取有多少个活动连接的数量。
对于 IIS6(从Technet 文章):
1.打开“管理工具”,然后单击“性能”。
2. 右键单击系统监视器详细信息窗格,然后单击添加计数器。
3. 执行以下操作之一:
要监视运行监视控制台的任何计算机,请单击“使用本地计算机计数器”。
-或者-
要监视特定的计算机,无论监视控制台在何处运行,请单击“从计算机中选择计数器”,然后指定计算机名称或 IP 地址。
4.在 Performance 对象中,单击:
用于监控活动 Web 连接的 Web 服务。
-或者-
FTP 服务用于监控活动的 FTP 连接。
5.单击从列表中选择计数器,然后选择当前连接。
6.单击所有实例。
7.单击“添加”,然后单击“关闭”。
答案3
参见 Evan 的回答。此外,netstat | find ":http" 会显示最近一分钟左右连接了哪些主机(无论 TIME_WAIT 间隔是多少)。
JR
答案4
如果您正在使用 asp.net 身份验证,并且想要通过您的网站查看结果,您可以在您的网站代码中使用以下 c# 代码:
using System.Web.Security;
MembershipUserCollection users = Membership.GetAllUsers();
foreach(MembershipUser user in users)
{
if (user.IsOnline)
{
.
.
}
}