【问题标题】:How to verify sender address permission before sending如何在发送前验证发件人地址权限
【发布时间】:2016-07-14 08:10:39
【问题描述】:

我希望能够检查登录用户是否有权从特定电子邮件地址发送邮件。如果他不能,我会从 UI 中删除选择,他只能从他的发送。

到目前为止,我似乎只能得到“用于提交此请求的用户帐户无权代表指定的发送帐户发送邮件”。一旦我做了.SendAndSaveCopy() 的消息,如果我做了.Save() ,它只返回没有错误。

ImpersonateUserId() 未在此 Exchange 服务器上启用。

【问题讨论】:

    标签: c# exchangewebservices


    【解决方案1】:

    SendAS 权限是一个扩展的 Active Directory ACE https://technet.microsoft.com/en-au/library/ff405676.aspx 任何邮箱 API 都不能用于查看或编辑该权限。因此,您可以检索它的唯一方法是通过 LDAP 查询目录并读取目标对象上的 DACL。

    【讨论】:

      【解决方案2】:

      似乎没有直接的方法来验证权限。

      所以我使用下面的代码“尝试”从给定帐户中检索文件夹列表。如果它返回答案,那是因为它有权限。

      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;
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-13
        • 2021-06-22
        • 1970-01-01
        • 2017-09-13
        • 2011-11-20
        • 2015-06-27
        • 1970-01-01
        • 2014-08-16
        相关资源
        最近更新 更多