2012-02-10 52 views
0

我怎樣才能獲得的loggedIn在客戶機我怎樣才能在客戶端計算機的用戶名登錄

的用戶名,而不客戶提供USEID和密碼... (wjen用戶訪問的頁面我需要獲得在該用戶ID,他/她的loggedIn)

我試圖

string clientMachineName; 
clientMachineName = (Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName); 
Response.Write(clientMachineName); 
+1

你的代碼讀取機器名和你詢問登錄用戶名,這是一個你有興趣? – V4Vendetta 2012-02-10 04:32:08

+0

@ V4Vendetta我需要讀客戶端機器當客戶端訪問我的頁面時登錄用戶名.. – user1201228 2012-02-10 04:43:45

+0

您是否正在尋找一種方法在LAN或WAN環境中執行此操作?你想要做什麼操作系統?你需要支持哪些瀏覽器? – 2012-02-10 04:53:27

回答

2

如果您在域環境中,你可以啓用Windows身份驗證,這將允許用戶繞過明確贊成登錄是的NTLM認證。 IE和Chrome可以很好地工作,FF有一個配置設置。

編輯

如果你只關心瀏覽器/操作系統支持ActiveX,那麼你可以將它使用JavaScript與特定ActiveX控件的權限(從here)獲得:

<script type="text/javascript"> 
<!-- 
var WinNetwork = new ActiveXObject("WScript.Network"); 
alert(WinNetwork.UserName); 
//--> 
</script> 
0

試試這個 可能是其工作根據您的要求

Request.ServerVariables["LOGON_USER"] 

如果Request.ServerVariables(「LOGON_USER」)返回AS中的空字符串P.NET Microsoft Guidline for that

+0

Request.ServerVariables [「LOGON_USER」]返回空sting .. bz頁面未通過驗證。 – user1201228 2012-02-10 04:49:02

0

您可以使用Request.LogonUserIdentity用於獲取客戶的詳細資料。

Response.Write(Request.LogonUserIdentity.Name);

+1

Request.LogonUserIdentity只有在用戶通過網站身份驗證時纔有效。 OP正在尋找一種方法來獲取用戶在客戶端計算機上的用戶名,而不需要憑證進行身份驗證。 – 2012-02-10 05:21:58

0

在某些情況下,似乎ServerVariables已針對C#折舊。

如果是這樣,你需要做的是這樣的:

string login = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

如果你真的想用ServerVariables,記住他們是區分大小寫在C#。正確的外殼幾乎總是UPPER,這裏是他們的列表:

List of ServerVariables

相關問題