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

发布于 2024-07-06 00:58:30 字数 531 浏览 5 评论 0原文

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

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

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

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

编辑:我们可以对 Exchange 使用 AD 所做的事情进行逆向工程,但我担心的是,随着 Exchange 的下一个服务包的出现,这一切都将被打破。

是否有一个 API 可用于管理 Active Directory 中的通讯组列表,而无需通过 Exchange?

We need to remotely create an Exchange 2007 distribution list from Asp.Net.

Near as I can tell, the only way to create a distribution list in the GAL is via the exchange management tools. Without installing this on our web server, is there any way to create a distribution list remotely? There are some third party components that allow you to create personal distribution lists, but these only live in a users Contacts folder and are not available to all users within the company.

Ideally there would be some kind of web services call to exchange or an API we could work with. The Exchange SDK provides the ability to managing Exchange data (e.g. emails, contacts, calendars etc.). There doesn't appear to be an Exchange management API.

It looks like the distribution lists are stored in AD as group objects with a special Exchange attributes, but there doesn't seem to be any documentation on how they are supposed to work.

Edit: We could reverse engineer what Exchange is doing with AD, but my concern is that with the next service pack of Exchange this will all break.

Is there an API that I can use to manage the distribution lists in Active Directory without going through Exchange?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满栀 2024-07-13 00:58:30

寻找 LDAP.NET,我手边没有,但我以前做过,当时效果很好。

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

另外,我找不到 LDAP.NET(我很好奇,就去查看了),现在看来有一个内置的 System.DirectoryServices 命名空间可以为您完成此操作。

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

Look for LDAP.NET, I don't have it handy but I've done it before and it worked well at the time.

Edit: I should add that LDAP is Lightweight Directory Access Protocol.

Also, I can't find LDAP.NET (I got curious and went to look) and now it appears that there's a built-in System.DirectoryServices namespace to do it for you.

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

↙温凉少女 2024-07-13 00:58:30

我们在邮件启用以编程方式创建的公用文件夹方面遇到了类似的问题,需要在活动目录中的交换系统对象上设置 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 启动之前耗尽连接,最终不得不重新启动服务器来清除它们。

We had a similar problem with mail enabling programatically created public folders and needed to set the msExchHideFromAddressLists property on the exchange system object in active directory...

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. make sure that any DirectoryEntries are properly disposed of or you'll likely run out of connections before the GC kicks in and end up having to restart the server to clear them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文