2016-06-21 22 views
0

ログインしたユーザーが特定のメールアドレスから送信する権限を持っているかどうかを確認したいと考えています。もし彼が私の選択肢をUIから取り除くことができなければ、彼は彼からのみ送ることができた。送信前に送信者のアドレス許可を確認する方法

これまでのところ、「このリクエストを送信するために使用されたユーザーアカウントには、指定された送信アカウントに代わってメールを送信する権利がありません。メッセージが.SendAndSaveCopy()になったら、私は.Save()を返すだけでエラーは返されません。

ImpersonateUserId()は、このExchangeサーバーでは有効になっていません。

答えて

0

SendAS権限は拡張Active Directory ACEですhttps://technet.microsoft.com/en-au/library/ff405676.aspxメールボックスAPIのどれもその権限を表示または編集することはできません。したがって、これを取得できる唯一の方法は、LDAP経由でディレクトリをクエリし、TargetオブジェクトのDACLを読み取ることです。

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; 
     } 
    } 
関連する問題