3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net,ADSI)Active Directroyの情報を参照サンプルソースのユーザクラス

(.Net)Active Directroyの情報を参照でのサンプルソースの補足です。

ユーザーアカウント情報を持つ User クラスです。(C#)

public class User{

///

/// objectGUID キー値

///

public Guid dmObjectGUID{get;set;}

///

/// objectSID

///

public string dmObjectSID { get; set; }

///

/// sAMAccountName ログインアカウント名

///

public string dmSamAccountName { get; set; }

///

/// userPrincipalName ログインアカウント名(AD環境 xx@aa.jp)

///

public string dmUserPrincipalName { get; set; }

///

/// createTimeStamp アカウント作成日時(なぜか空)

///

public DateTime dmCreateTimeStamp { get; set; }

///

/// modifyTimeStamp アカウント変更日時(なぜか空)

///

public DateTime dmModifyTimeStamp { get; set; }

///

/// WhenCreated アカウント作成日時

///

public DateTime dmWhenCreated{ get; set; }

///

/// WhenChanged アカウント変更日時

///

public DateTime dmWhenChanged { get; set; }

///

/// displayName 表示名

///

public string dmDisplayName { get; set; }

///

/// logonCount ログイン回数(ドメイン間複製無し)

///

public long dmLogonCount { get; set; }

///

/// lastLogon 最終ログイン日時(ドメイン間複製無)

///

public DateTime dmLastLogon { get; set; }

///

/// lastLoginTimeStamp 最終ログイン日時(14日毎ドメイン間複製あり)

///

public DateTime dmLastLogonTimeStamp { get; set; }

///

/// userAccountControl ユーザのアカウントに関する情報(無効情報もここにあり)

///

public int dmUserAccountControl { get; set; }

///

/// distinguishedName 識別名。DN表記

///

public string dmDistinguishedName { get; set; }

 

private List mDmMemberOf = new List();

///

/// memberOf ユーザが属しているグループ。DN表記

///

public List dmMemberOf { get { return mDmMemberOf; } set { mDmMemberOf=value; } }

///

/// sn 姓

///

public string dmSn { get; set; }

///

/// givenName 名

///

public string dmGivenName { get; set; }

///

/// cn CN名

///

public string dmCn { get; set; }

///

/// description 説明

///

public string dmDescription { get; set; }

///

/// accountExpirationDate アカウント有効期限

///

public DateTime dmAccountExpirationDate { get; set; }

///

/// objectcategory オブジェクトのカテゴリ

///

public string dmObjectCategory { get; set; }

///

/// adspath オブジェクトへのパス

///

public string dmAdsPath { get; set; }

///

/// アカウント無効か

///

public bool Disable { get; set; }

///

/// ログオンスクリプト実行

///

public bool Script{ get; set; }

///

/// ホームフォルダが必要

///

public bool HomeDirReauired { get; set; }

///

/// ロックアウトしてる

///

public bool LockOut { get; set; }

///

/// パスワードが必要ない

///

public bool PasswdNotReqd { get; set; }

///

/// パスワードが変更できない

///

public bool PasswdCantChange { get; set; }

///

/// 暗号化されたパスワードを送信できる

///

public bool EncPasswdAllowed { get; set; }

///

/// 別のドメインにプライマリ アカウントを持つユーザーが使用するアカウントです。このアカウントが存在することにより、ユーザーはこのドメインにアクセスできますが、このドメインを 信頼するドメインへのアクセスはできません。これはローカル ユーザー アカウントとして参照される場合があります。

///

public bool TempDuplicateAccount { get; set; }

///

/// 通常のユーザー

///

public bool NormalAccount { get; set; }

///

/// 別のドメインを信頼しているシステム ドメインのアカウントを信頼することを許可します。

///

public bool InterdomainTrustAccount { get; set; }

///

/// Microsoft Windows NT 4.0 Workstation、Microsoft Windows NT 4.0 Server、Microsoft Windows 2000 Professional、または Windows 2000 Server を実行している動作するコンピュータのコンピュータ アカウントであり、このドメインのメンバです。

///

public bool WorkstTrustAccount { get; set; }

///

/// このドメインのメンバであるドメイン コントローラのコンピュータ アカウントです。

///

public bool ServerTrustAccount { get; set; }

///

/// パスワード無期限

///

public bool DontExpirePasswd { get; set; }

///

/// MNSログインアカウント

///

public bool MnsLogon { get; set; }

///

/// スマートカードログイン

///

public bool SmartCardRequired { get; set; }

///

/// このフラグを設定すると、サービスを実行するサービス アカウント (ユーザー アカウントまたはコンピュータ アカウント) が Kerberos の委任に対して信頼されます。このようなサービスでは、サービスを要求するクライアントを偽装することができます。サービスで Kerberos の委任を有効にするには、このフラグをサービス アカウントの userAccountControl プロパティに設定する必要があります。

///

public bool TrustedForDelegation { get; set; }

///

/// このフラグを設定すると、サービス アカウントが Kerberos の委任に対して信頼されると設定されていても、ユーザーのセキュリティ コンテキストはサービスに委任されません。

///

public bool NotDelegated { get; set; }

///

/// このプリンシパルを、DES (Data Encryption Standard) 暗号化のみをキーに使用できるように制限します

///

public bool UseDesKeyOnly { get; set; }

///

/// このアカウントは、ログオン時に Kerberos 事前認証を必要としません。

///

public bool DontReqPreauth { get; set; }

///

/// ユーザーのパスワードの有効期限が切れています。

///

public bool PasswdExpired { get; set; }

///

/// このアカウントは委任に対して有効です。これはセキュリティに代わる設定です。このオプションが設定されたアカウントは厳密に管理する必要があります。こ の設定を行うと、アカウントで実行されているサービスはクライアントとして識別され、ネットワーク上の他のリモート サーバーへそのユーザーとして認証されます

///

public bool TrustedToAuthForDelegation { get; set; }

///

/// PrimaryグループSID(プライマリグループはMemberOfで取れないため)

///

public string PrimaryGroupSID { get; set; }

}