マイナーでもいいよね??

殆どVB系、でも .NET じゃない VB は知らないよん

目次

Blog 利用状況

書庫

日記カテゴリ

COM対応版の変更点の説明(セキュリティ記述子:SecurityDescriptor)

Active Directory データのプロパティ出力の COM 対応版について、4 つの変更点のうち 2 つ目の説明です。

大きい整数関連の次はセキュリティ記述子(SecurityDescriptor)に関係する部分についてです。(コードはこちら VB C#

※2013/12/10 Trustee と AceType について修正しました。

 

セキュリティ記述子も "大きい整数" と同じく COM(ADSI オブジェクト)です。

セキュリティ記述子の属性は nTSecurityDescriptor で、値を ADSI の IADsSecurityDescriptor インターフェイスにキャストできます。

nTSecurityDescriptor 属性はオプションのプロパティでは取得できないので、OutputProperties メソッドの方だけ考慮します。

 

今回はセキュリティ記述子の随意アクセス制御リスト(DACL : Discretionary Access Control List)の各アクセス制御エントリ(ACE : Access Control Entry)を見やすい形で出力します。

出力するアクセス制御エントリ(IADsAccessControlEntry インターフェイス)のプロパティは次の 5 つです。

・Trustee

・AccessMask

・AceFlags

・AceType

・Flags

これを上記プロパティの値(Trustee はユーザやグループの名前部分のみ)順に重複は除外して出力します。

また、列挙体の値(Trustee 以外の 4 つ : プロパティの型は Int32)は、値だけでなく それを表す列挙値の文字列も出力します。この文字列の取得は ToEnumValueText メソッドに実装してます。

 

プロパティの値の型が IADsSecurityDescriptor の時の処理ですが、

まずは値を IADsSecurityDescriptor にキャストして、

次に IADsSecurityDescriptor.DiscretionaryAcl プロパティ(Object 型)を IADsAccessControlList にキャストして、要素を IADsAccessControlEntry にキャスト、そして上記の通りソートしてグループ化します。

カウンタ変数を用意して、まずは属性名を出力します。

上記プロパティの値でグループ化した ACE の各要素に対してループ処理します。

1. 先頭の ACE を取出し

2. カウンタをインクリメント

3. Trustee プロパティの情報を出力(ユーザやグループの名前部分のみ)

4. AccessMask プロパティの値をテキスト化(対応する列挙体は ADS_RIGHTS_ENUM

5. AceFlags プロパティの値をテキスト化(対応する列挙体は ADS_ACEFLAG_ENUM

6. AceType プロパティの値をテキスト化(対応する列挙体は ADS_ACETYPE_ENUM

7. Flags プロパティの値をテキスト化(対応する列挙体は ADS_FLAGTYPE_ENUM

 

列挙体のプロパティ値をテキスト化する ToEnumValueText メソッドの処理です。

引数として、設定されている値とそれに対応する列挙体の型を受け取ります。

まずは設定されている値の列挙体文字列のリストを生成します。

リストに中身がない時は、設定されている値を文字列にして返します。

 

AceType(ADS_ACETYPE_ENUM)の時はビットマスクがかぶってしまうことがあるので、その場合は列挙値が小さい方を削除します。

1. リスト内の列挙体文字列を列挙値(数値)に変換して合計を算出

2. 設定されている値と合計値が違ってればビットマスクがかぶってるので、列挙値が小さい方(差分)の列挙体文字列をリストから削除

値と カッコで括った値の列挙体文字列を 文字列にして返します。

 

設定されている値の列挙体文字列のリストを生成します。

リストに中身がない時は、設定されている値を文字列にして返します。

 

最後に、設定されている値と リストの要素をパイプで連結した文字列をカッコで括ったものを 文字列にして返します。

投稿日時 : 2013年12月9日 20:43

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント