我希望能夠檢查登錄用戶是否有權從特定電子郵件地址發送郵件。如果他不能,我會刪除用戶界面的選擇,他只能從他的發送。如何在發送之前驗證發件人地址許可
到目前爲止,我似乎只能得到「用於提交此請求的用戶帳戶無權代表指定的發送帳戶發送郵件。」信息一旦我做了.SendAndSaveCopy()
,如果我做.Save()
只返回沒有錯誤。
ImpersonateUserId()
未在此交換服務器上啓用。
我希望能夠檢查登錄用戶是否有權從特定電子郵件地址發送郵件。如果他不能,我會刪除用戶界面的選擇,他只能從他的發送。如何在發送之前驗證發件人地址許可
到目前爲止,我似乎只能得到「用於提交此請求的用戶帳戶無權代表指定的發送帳戶發送郵件。」信息一旦我做了.SendAndSaveCopy()
,如果我做.Save()
只返回沒有錯誤。
ImpersonateUserId()
未在此交換服務器上啓用。
SendAS權限是一個擴展活動目錄ACE https://technet.microsoft.com/en-au/library/ff405676.aspx無法使用任何郵箱API查看或編輯該權限。因此,您可以通過LDAP查詢目錄並讀取目標對象上的DACL。
似乎沒有直接的方式來驗證權限。
所以我使用下面的代碼來「嘗試」從給定的帳戶中檢索文件夾列表。如果它返回一個答案,這是因爲它有權限。
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;
}
}