2011-01-14 93 views
2

有人告訴我,像名字,地址,電話等用戶信息存儲在網絡上(顯然只有當一個人已經給出了這個信息)。這是Outlook在網絡上搜索用戶時獲取的信息(Outlook用於填充聯繫人卡片的信息)。這顯然是有效的,因爲我可以在我公司的網絡中搜索任何人,並且可以爲我們網絡上的全球人員獲得結果。如何從C#公司的域/網絡設置獲取用戶信息?

我正在從事的計劃是我們公司的內部工作,我的任務之一是預先填寫具有該信息的表單。

我的問題是,我如何得到這些信息?它存儲在哪裏?我用什麼物體來獲得它?

編輯:我對此有點普遍。我真正需要的是當前用戶的信息('當前'是登錄到計算機並使用我的程序的人)。什麼是最好的方式來獲得它?

回答

4

要從Active Directory中讀取,需要的類位於System.DirectoryServices.dll中。重要的是DirectorySearcher和DirectoryEntry。看看在第2個回答這個其他問題,以獲得更多的代碼:How to get the current user's Active Directory details in C#

更新:要獲取當前用戶的信息,把他們的登錄名,然後做在Active Directory中搜索與用戶相同的用戶ID。例如:

adSearch.Filter =「(sAMAccountName =」+ Environment.UserName +「)」;

(在ASP.Net,你會得到其他地方的用戶名。)

3

如果您使用的是Active Directory,那麼您可以根據給定的域和用戶名從那裏查詢該信息。它基本上是一個LDAP商店,但是如何實現它,網絡上有大量的信息。

這裏的另一個問題是明確要求如何從Active Directory檢索這些信息:

How to get the current user's Active Directory details in C#

在一個桌面應用程序,以獲得當前登錄用戶的Windows用戶名,您可以使用Environment.UserName

+0

更新了我的問題。這仍然是我需要採取的相同方法嗎? – 2011-01-14 16:45:56

+0

在桌面應用程序中,要獲取當前登錄用戶的Windows用戶名,可以使用`Environment.UserName`。 – 2011-01-14 16:56:00

0

一個額外的小費與答案大衛和尼爾巴恩韋爾提供附和:

可以使用HttpContext.Current.User.Identity.Name得到他們的ID 。

如果您想從程序集或其他後端代碼中使用它,請確保您添加了using System.Web

0

要回答你的問題「有沒有辦法讓當前的域控制器......」這是有幫助的,我一個辦法,就是使用nltest命令[1]是這樣的:

C:\>nltest /dsgetdc:yourdomain.com 

它應該輸出各種有用的東西。

[1] http://support.microsoft.com/kb/247811

相關問題