2011-10-19 15 views
1

メールボックスにグループを追加しようとしています(C#)。私は、CDOEXM、DirectoryServices.AccountManagement呼び出しを混在して使用していて、失敗しています。これは私のコードです:ExchangeメールボックスのACLを設定する

私は試してみると、コンパイルエラーまたはInvalidCastExceptionが発生します。

+0

コンパイルエラーでどのラインでエラーが発生しますか? InvalidCastExceptionはどこにスローされますか? –

+0

同様の質問[Active Directoryのオブジェクトへのセキュリティプロパティの読み取り/書き込み(権利の委任と同じ方法)C#](http://stackoverflow.com/q/6251126/608772)。 – JPBlanc

+0

ヘニング、私は使用したコードのバリエーションによって様々なエラーが発生していました。私は今いくつか実験しました。私はいくつかの良い例が私が必要としていて、もっと早く見つけることができなかったと思う(特にCDOEXMのもの)。しかし、JPBlanc、私はあなたの例を見てくれてありがとう、私はもう少し理解していると思うので、私は明日仕事に入るときにあなたの例に基づいていくつか試してみます。もしあなたのどちらかが、このためにいくつかの良い文書を私に指摘することができれば、特別なボーナスになります。お返事いただき、ありがとうございました。 – Richard

答えて

0

は、痛みのかなり(私は何とか設定していた整数値がAPI内の値を列挙するために対応するが、私は彼らが仕事を得ることができませんでした)後にそれを手に入れた助けてください。変数userDeはDirectoryEntryです。

  IExchangeMailbox exMb = (IExchangeMailbox)userDe.NativeObject; 
      IADsSecurityDescriptor securityDescriptor = (IADsSecurityDescriptor)exMb.MailboxRights; 
      IADsAccessControlList acl = (IADsAccessControlList)securityDescriptor.DiscretionaryAcl; 
      AccessControlEntry ace = new AccessControlEntry(); 
      ace.Trustee = groupName; 
      ace.AccessMask = 1; 
      ace.AceFlags = 2; 
      ace.AceType = 0; 

      acl.AddAce(ace); 
      securityDescriptor.DiscretionaryAcl = acl; 
      IADsUser iadsUser = (IADsUser)userDe.NativeObject; 
      iadsUser.Put("msExchMailboxSecurityDescriptor", securityDescriptor); 

      iadsUser.SetInfo(); 
関連する問題