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组的数据字段中输入的相应共享邮箱地址,从而对某个组中的用户应用进一步的权限?
非常感谢您在这方面的帮助!
我在这里复制了当前的查询,这是我正在处理的插件的一部分。
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;
}发布于 2015-11-27 14:50:27
您应该使用Microsoft Graph。它是适用于所有Office 365端点的通用API。如果您正在使用Office 365,则所有用户都将是Azure AD域的一部分。
尝试Microsoft图形资源管理器并查询/Users端点,如下所示:
https://graph.microsoft.com/v1.0/usershttps://stackoverflow.com/questions/33959591
复制相似问题