2012-04-18 60 views
0

我刚刚为我的asp.net网站实现了一个非常简单的日志记录过程。该网站托管在没有任何人登录的服务器上的IIS上。客户将通过本地网络地址连接到该网站。我正在记录所完成的操作以及所花费的时间。如果有人想读取日志文件,他不知道他运行了哪些操作,因为每个人的操作都是在同一个地方写的。识别客户身份

我想添加一个信息来识别用户每次我登录的东西。我尝试访问HttpContext.Current.User,但它总是有一个通用的身份。我也看了HttpContext.Session,但没有发现任何相关的...

我想记录计算机名称或用户名(用户登录到Windows),或其他东西将帮助我的用户确定哪些是他们的操作。 (我也可以把所有的东西都分开放在单独的日志文件中,但是我又需要一些东西来告诉他们appart)。

+2

我*认为*如果您位于本地Intranet上,则可以为您的应用启用Windows身份验证,并允许所有人连接。然后'Current.User'应该可以工作。 – SouthShoreAK 2012-04-18 20:58:28

+0

您的意思是web.config中的?我只是试了一下。它在Visual Studio中进行调试时工作,但在部署之后不起作用。我想当部署它需要服务器的Windows用户(这是没有...) – Amaranth 2012-04-18 21:14:23

+0

你可能不得不做一些匿名登录工作。我知道我以前做过这件事,但我真的很抱歉,我不记得确切的细节。 – SouthShoreAK 2012-04-18 21:17:19

回答

0

经过一段时间的搜索后,我找到了一种方法来获取客户端的计算机名称。

string name = 
    System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName.Split('.')[0];