如何使用.NET在GAL中创建Exchange通讯组列表?

时间:2008-09-29 19:47:26

标签: api list active-directory exchange-server gal

我们需要从Asp.Net远程创建Exchange 2007通讯组列表。

我可以说,在GAL中创建分发列表的唯一方法是通过交换管理工具。如果不在我们的Web服务器上安装它,有没有办法远程创建分发列表?有一些第三方组件允许您创建个人通讯组列表,但这些组件仅存在于用户的“联系人”文件夹中,并且不可供公司内的所有用户使用。

理想情况下,会有某种Web服务调用交换或我们可以使用的API。 Exchange SDK提供管理Exchange数据的功能(例如电子邮件,联系人,日历等)。似乎没有Exchange管理API。

看起来分发列表作为具有特殊Exchange属性的组对象存储在AD中,但似乎没有关于它们应该如何工作的任何文档。

编辑:我们可以对Exchange正在对AD做什么进行逆向工程,但我担心的是,对于下一个Exchange服务包,这一切都会破坏。

我是否可以使用API​​来管理Active Directory中的通讯组列表而无需通过Exchange?

2 个答案:

答案 0 :(得分:1)

寻找LDAP.NET,我没有它的方便,但我之前已经完成它并且当时运行良好。

编辑:我应该补充说,LDAP是轻量级目录访问协议。

另外,我找不到LDAP.NET(我很好奇并开始寻找)现在看来有一个内置的System.DirectoryServices命名空间可以帮你完成。

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/729d1214-37f5-4330-9208-bc4d9d695ad0

答案 1 :(得分:1)

我们遇到类似的问题,邮件启用以编程方式创建的公共文件夹,并且需要在活动目录中的Exchange系统对象上设置msExchHideFromAddressLists属性...

using (DirectoryEntry LDAPConnection = new DirectoryEntry("LDAP://OURDOMAIN/CN=" + name+ ",CN=Microsoft Exchange System Objects,DC=ourdomain,DC=com"))
{
    LDAPConnection.AuthenticationType = AuthenticationTypes.Secure;
    LDAPConnection.Properties["msExchHideFromAddressLists"].Value = false;
    LDAPConnection.CommitChanges();
}

PS。确保正确处理任何DirectoryEntries,否则在GC启动之前您可能会用完连接,最终必须重新启动服务器才能清除它们。