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

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

目次

Blog 利用状況

書庫

日記カテゴリ

セキュリティ記述子(SecurityDescriptor)のADSIに対応する.NETのクラス

セキュリティ記述子(nTSecurityDescriptor 属性)について DirectoryEntry.ObjectSecurityプロパティのとこで ADSI の 3 つのインターフェイスの名前に似たクラスが .NET にあるはずと思ったので調べてみました。

 

セキュリティ記述子である IADsSecurityDescriptor ですが、対応するのは CommonSecurityDescriptor クラスで、説明は次のように書かれてます。

セキュリティ記述子を表します。 セキュリティ記述子には、所有者、プライマリ グループ、随意アクセス制御リスト (DACL: Discretionary Access Control List)、システム アクセス制御リスト (SACL: System Access Control List) が含まれます。

この説明にある 4 つは順に Owner、Group、DiscretionaryAcl、SystemAcl プロパティで IADsSecurityDescriptor インターフェイスのメンバと同じです。(型は違います)

SecurityDescriptor 関連クラスの継承階層は次のようになってます。

 System.Object

  System.Security.AccessControl.GenericSecurityDescriptor

   System.Security.AccessControl.CommonSecurityDescriptor

   System.Security.AccessControl.RawSecurityDescriptor

 

CommonSecurityDescriptor.DiscretionaryAcl プロパティの型は DiscretionaryAcl クラスで、IADsAccessControlList に対応する 随意アクセス制御リストを表すクラスです。

ちなみに CommonSecurityDescriptor.SystemAcl プロパティの型は SystemAcl クラスで、IADsAccessControlList に対応する システム アクセス制御リストを表すクラスです。

ACL 関連クラスの継承階層は次のようになってます。

 System.Object

  System.Security.AccessControl.GenericAcl

   System.Security.AccessControl.CommonAcl

    System.Security.AccessControl.DiscretionaryAcl

    System.Security.AccessControl.SystemAcl

   System.Security.AccessControl.RawAcl

 

随意アクセス制御リストの各要素であるアクセス制御エントリは IADsAccessControlEntry で、これに対応するクラスは 2 つあります。

1 つは アクセス制御エントリを表す CommonAce クラスです。

もう 1 つは ディレクトリ オブジェクトに関連付けられたアクセス制御エントリを表す ObjectAce クラスです。

ACE 関連クラスの継承階層は次のようになってます。

 System.Object

  System.Security.AccessControl.GenericAce

   System.Security.AccessControl.CustomAce

   System.Security.AccessControl.KnownAce

    System.Security.AccessControl.CompoundAce

    System.Security.AccessControl.QualifiedAce

     System.Security.AccessControl.CommonAce

     System.Security.AccessControl.ObjectAce

 

MSDN ライブラリを見ると DiscretionaryAcl.Item プロパティ(CommonAcl から継承)は次のように書かれてます。(下は原文)

指定したインデックス位置にある CommonAce を取得または設定します。

Gets or sets the CommonAce at the specified index.

プロパティの型は GenericAce で、GenericAcl.Item をオーバーライドしてます。

GenericAcl.Item の方は「CommonAce」じゃなく「GenericAce」となってます。

DiscretionaryAcl(随意アクセス制御リスト)内には ObjectAce クラスのアクセス制御エントリもあるので、「CommonAce を取得または設定」よりは「QualifiedAce を取得または設定」の方がまだいいのではないかと思いますね。

少なくても 説明まで上書きしなくても・・・

 

ひとまずこれらのクラスを使って ADSI の時と同じ内容(列挙値の文字列が異なるだけ)の出力ができるようにしてみます。

コードの量は確実に増えると思いますが・・・

投稿日時 : 2013年12月23日 1:10

コメントを追加

# waskXhCrEODnUSVT 2021/07/03 1:38 https://unsplash.com/@elizacastaneda

like so, bubble booty pics and keep your head up, and bowling bowl on top of the ball.

# VUjDblecQvJGrPpzqnE 2021/07/03 3:06 https://amzn.to/365xyVY

pretty practical material, overall I consider this is really worth a bookmark, thanks

# re: ?????????(SecurityDescriptor)?ADSI?????.NET???? 2021/07/15 15:59 hydroxychloroquine treats what

chloroquine moa https://chloroquineorigin.com/# hydroxycholorquine

# qipvywyjnqdo 2021/12/01 0:59 dwedaywohp

https://hydrochloroquine200.com/ quinine vs chloroquine

# Test, just a test 2022/12/14 5:35 candipharm.com

canadian pills online https://www.candipharm.com

タイトル
名前
URL
コメント