2010-08-30 50 views
1

我正在使用Environment.UserName獲取.net中的用戶名,但Iam獲取機器名稱而不是用戶名。我也嘗試使用 System.Security.Principal.WindowsIdentity.GetCurrent()。Name.ToString(); 甚至這個返回的機器名稱而不是用戶名。 有什麼想法?在.net中查找Windows用戶

+2

你在哪裏調用此,迪夫亞 - 在客戶端上,或從該客戶端所連接的服務器應用程序中? – 2010-08-30 14:27:26

+0

你的代碼在別的方面破壞返回的字符串?你確定它沒有返回機器名稱和用戶名嗎? – David 2010-08-30 14:29:06

+0

如果這是asp.net服務器端代碼,可能是匿名模式,並且您可以看到IIS正在使用的名稱。 – asawyer 2010-08-30 14:35:10

回答

0

試試這個(上http://www.developerfusion.com/code/4409/get-current-username-in-vbnet找到)

Declare Function GetUserName Lib "advapi32.dll" Alias _ 
     "GetUserNameA" (ByVal lpBuffer As String, _ 
     ByRef nSize As Integer) As Integer 

    Public Function GetUserName() As String 
     Dim iReturn As Integer 
     Dim userName As String 
     userName = New String(CChar(" "), 50) 
     iReturn = GetUserName(userName, 50) 
     GetUserName = userName.Substring(0, userName.IndexOf(Chr(0))) 
    End Function 
+0

感謝您的回覆.. :) 我明白了。其實Iam試圖獲得Dotnetnuke中的UserName。 DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()。用戶名;解決了我的問題。 再次感謝。 – Divya 2010-08-31 11:21:15