2010-04-05 38 views
0

我們正在嘗試爲Growl for Windows實施自定義解決方案。我們告訴Growl客戶端訂閱來自我們服務器的通知。然後服務器通過GNTP(Growl消息傳遞協議)從客戶端獲取消息。我們需要登錄到客戶端計算機的用戶的名稱才能執行數據庫查找。 GNTP不提供這些信息。從.net中的IPAddress或主機名獲取域用戶

因此,我們有一個連接的客戶端套接字(以及IP地址)和來自此客戶端的包含其機器名稱的消息。

是否有任何可能的方式來確定登錄到指定機器的用戶的用戶名?我們可以訪問Windows域服務。

+0

經過一些搜索,很顯然,這個ISN真的不可行。有沒有辦法做相反的事情?獲取IP或主機給出的用戶名? – Anthony 2010-04-06 00:07:05

+0

只是爲了讓你保持正軌:是的,這樣的事情應該是可能的 - 我已經看到了一個客戶。給一個用戶名,你會得到最新的機器名登錄,你可以解決這個問題。但我認爲他們使用全局登錄腳本來完成它。你能做那樣的事嗎?呼叫http:// yourserver/Login?Id = CurrentUser或其他內容的登錄腳本? – 2010-04-06 00:20:47

+1

爲什麼不讓客戶端發送用戶ID? – ig0774 2010-04-06 00:23:45

回答

0

我們結束了由在登錄一個客戶端應用程序運行,並讓我們的服務器知道哪些用戶已登錄做反向(八九不離十)。

0

這會給你的Windows域和當前用戶(如果這就是你以後是什麼)使用System.Security.Principal

;

 if (WindowsIdentity.GetCurrent().IsAuthenticated) 
     { 
      string Result = WindowsIdentity.GetCurrent().Name;