首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读分配给AD组Outlook 2010/Office 365的电子邮件地址

问阅读分配给AD组Outlook 2010/Office 365的电子邮件地址
EN

Stack Overflow用户
提问于 2015-11-27 14:31:08
回答 1查看 391关注 0票数 0

Office 365/Outlook 2010 Exchange Server,Outlook(2010)插件开发。

设想情况:

简单的情况是,在我们的组织中,我们共享邮箱,用户将使用这些邮箱作为与客户通信的主要电子邮件,以及一个用于处理收到的电子邮件的邮箱。用户帐户已在Active Directory (Cloud)中创建,因为电子邮件帐户是通过Office 365 Admin (Exchange )为相应用户创建的。

当前插件读取AD并检查用户是否是活动目录中某个组的一部分。根据组的不同,它指定权限,用户是否可以代表他/她的经理发送电子邮件。在第二种情况下,用户是否只能通过共享邮箱(共享邮箱作为主帐户)发送电子邮件。

请注意,广告中没有为用户指定的电子邮件地址。然而,它应该做的是读取整个AD组并获取分配给该特定组(例如Sales)的电子邮件地址。这些信息应该与Office 365同步。

“销售”组的成员只能使用共享邮箱(sales@domain.com)而不是他们的个人用户帐户(thomas@domain.com)发送电子邮件。此条件在现有代码中被选中,但是我没有看到与共享邮箱相关的任何实现,而是在常规邮箱上,例如,Sales@domain.com (许可帐户而不是共享邮箱)。

是否有一种方法可以读取AD组并检索在AD组的数据字段中输入的相应共享邮箱地址,从而对某个组中的用户应用进一步的权限?

非常感谢您在这方面的帮助!

我在这里复制了当前的查询,这是我正在处理的插件的一部分。

代码语言:javascript
复制
 bool QueryAD(string EMailAdresse, string Gruppe)  
 {
      PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
      GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, Gruppe);
      GroupMembershipCacheInitialized = true;

      if (grp != null)
      {
         foreach (Principal p in grp.GetMembers(false))
         {
          if (((UserPrincipal)p).EmailAddress == EMailAdresse) // this doesnt make sense because p.EmailAddress is always null
              {
                     GroupMembershipCache.Add(EMailAdresse, Gruppe);                        
                     return true;
              }
          }

         grp.Dispose();
         ctx.Dispose();
     }

     return false;
 }
EN

回答 1

Stack Overflow用户

发布于 2015-11-27 14:50:27

您应该使用Microsoft Graph。它是适用于所有Office 365端点的通用API。如果您正在使用Office 365,则所有用户都将是Azure AD域的一部分。

尝试Microsoft图形资源管理器并查询/Users端点,如下所示:

代码语言:javascript
复制
https://graph.microsoft.com/v1.0/users
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33959591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档