我希望能够检查登录用户是否有权从特定电子邮件地址发送。如果他不能,我会从用户界面删除选择,他只能从他的。
发送到目前为止,我似乎只能获得“用于提交此请求的用户帐户无权代表指定的发送帐户发送邮件”。我做.SendAndSaveCopy()
后发出消息,如果我.Save()
,则只返回错误。
ImpersonateUserId()
未在此Exchange服务器上启用。
答案 0 :(得分:0)
SendAS权限是扩展Active Directory ACE https://technet.microsoft.com/en-au/library/ff405676.aspx,任何邮箱API都不能用于查看或编辑该权限。因此,检索此问题的唯一方法是通过LDAP查询目录并读取Target对象上的DACL。
答案 1 :(得分:0)
似乎没有直接的方法来验证权限。
所以我使用下面的代码“尝试”从给定帐户中检索文件夹列表。如果它返回答案,那是因为它有权限。
private bool HasOwnerAccess(string emailaddress)
{
try
{
Mailbox mailbox = new Mailbox(emailaddress);
FindFoldersResults findfolder = exchangeService.FindFolders(new FolderId(WellKnownFolderName.Inbox, mailbox), new FolderView(1));
return true;
}
catch (Exception)
{
return false;
}
}