2012-04-18 62 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];