H i。我想知道我用戶的Exchange服務器的地址(假設她在典型的Windows辦公網絡中)。這是在C#應用程序中。在.NET中獲取用戶的Exchange服務器和電子郵件地址
我已經有用戶的電子郵件地址,我發現它在System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress
,引用System.DirectoryServices.AccountManagement
H i。我想知道我用戶的Exchange服務器的地址(假設她在典型的Windows辦公網絡中)。這是在C#應用程序中。在.NET中獲取用戶的Exchange服務器和電子郵件地址
我已經有用戶的電子郵件地址,我發現它在System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress
,引用System.DirectoryServices.AccountManagement
我將此用於我的Exchange客戶端應用程序。
C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.WebServices.dll
現在代碼:
var exchange = new ExchangeService();
exchange.AutodiscoverUrl(from);
var server = exchange.Url.Host;
Console.WriteLine(server);
這裏是MSDN documentation。但請注意這是針對API的未發佈版本1.2的。我找不到版本1.1的文檔
謝謝kjosh,這看起來很有希望。我會在星期一測試它 – 2012-03-24 18:17:33
我安裝了你的鏈接,但找不到'.dll'來引用。最後在'C:\ Program Files \ Microsoft \ Exchange \ Web Services \ 1.1'上找到它。 – 2012-03-26 08:15:02
感謝您的更新Matt – kjosh 2012-03-26 17:36:19
您正在尋找所謂的homeMDB AD屬性後: http://msdn.microsoft.com/en-us/library/ms980583(v=exchg.65).aspx
我不認爲這個屬性有一個很好的.NET包裝器,所以你需要使用一個低級別的LDAP API來獲取它。
請注意,對於更高版本的Exchange(即2010),您可以連接到任何CAS角色,Exchange將找出路由。
對不起,我不明白如何使用你發佈的內容。 – 2012-03-15 13:03:16
對System.DirectoryServices的調用實際上只是使用LDAP來查詢Active Directory以獲取userprincipal對象。它作爲一個很好的.NET包裝來讀取特定的LDAP屬性。 Exchange將同一用戶主體對象中的Exchange服務器存儲在一起,除了它位於名爲homeMDB的屬性中。它看起來不像System.DirectoryServices有一個很好的.NET包裝器,所以你需要使用像DirectoryEntry這樣的東西讀取屬性。請參閱http://support.microsoft.com/kb/313114 – 2012-03-15 19:47:15
至於我的筆記,如果您使用的是更高版本的版本,您可能甚至不需要知道哪臺Exchange服務器。在這種情況下,您可以簡單地指向與OWA相同的服務器,並且「它將正常工作。」 – 2012-03-15 19:51:00
Exchange Server 2007和2010附帶[** Autodiscover **](http://technet.microsoft.com/zh-cn/library/cc511507.aspx) - 不知道它是否適用於您的情況。 – 2012-03-14 21:03:34