ドメインユーザを表すクラス DomainUser クラスのC#のコードです。
[DataObject()]
public sealed class DomainUser : DomainObject, IUser
{
#region プライベートフィールド
private readonly string _name;
#endregion
#region インターナルコンストラクタ
//DirectoryEntry を指定して DomainUser クラスの新しいインスタンスを初期化します。
internal DomainUser(DirectoryEntry entry)
: base(entry)
{
_name = entry.Properties["sAMAccountName"].Value.ToString();
}
#endregion
#region パブリックプロパティ
//電子メールを取得または設定します。
public string EmailAddress
{
get
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
return (string)base.Entry.Properties["mail"].Value;
}
set
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
base.Entry.Properties["mail"].Value = value;
}
}
//***** 長くなるので以降プロパティの Dispse チェックを省略(DisplayName と Name プロパティは元々なし)
//アカウントが無効かどうかを取得または設定します。
public bool Disabled
{
get
{
return ((IADsUser)base.Entry.NativeObject).AccountDisabled;
}
set
{
((IADsUser)base.Entry.NativeObject).AccountDisabled = value;
}
}
//表示用の名前を取得します。
public string DisplayName
{
get
{
return base.Name;
}
}
//名を取得または設定します。
public string FirstName
{
get
{
return (string)base.Entry.Properties["givenName"].Value;
}
set
{
base.Entry.Properties["givenName"].Value = value;
}
}
//表示名を取得または設定します。
public string FullName
{
get
{
return (string)base.Entry.Properties["displayName"].Value;
}
set
{
base.Entry.Properties["displayName"].Value = value;
}
}
//姓を取得または設定します。
public string LastName
{
get
{
return (string)base.Entry.Properties["sn"].Value;
}
set
{
base.Entry.Properties["sn"].Value = value;
}
}
//アカウント名を取得します。
public override string Name
{
get
{
return _name;
}
}
//Entry の ADSI User オブジェクトを取得します。
public IADsUser Native
{
get
{
return (IADsUser)base.Entry.NativeObject;
}
}
//事業所を取得または設定します。
public string OfficeName
{
get
{
return (string)base.Entry.Properties["physicalDeliveryOfficeName"].Value;
}
set
{
base.Entry.Properties["physicalDeliveryOfficeName"].Value = value;
}
}
//プライマリグループ ID を取得します。
public int PrimaryGroupId
{
get
{
return Convert.ToInt32(base.Entry.Properties["primaryGroupID"].Value);
}
}
//電話番号を取得または設定します。
public string TelephoneNumber
{
get
{
return (string)base.Entry.Properties["telephoneNumber"].Value;
}
set
{
base.Entry.Properties["telephoneNumber"].Value = value;
}
}
#endregion
#region パブリックメソッド
//指定したアカウント名のユーザを検索します。このメソッドはデータバインド用です。
[DataObjectMethod(DataObjectMethodType.Select)]
public static DomainUser FindByName(string name)
{
return (DomainUser)DirectoryAccess.FindDirectoryObject(name, CategoryType.User);
}
//指定したユーザの所属するグループを取得します。このメソッドはデータバインド用です。
[DataObjectMethod(DataObjectMethodType.Select)]
public static ReadOnlyCollection<string> GetBelongGroups(string userName)
{
var user = FindByName(userName); //ユーザを検索
return DirectoryAccess.GetBelongGroups(user); //ユーザの所属するグループを取得
}
//ユーザの一覧を取得します。このメソッドはデータバインド用です。
[DataObjectMethod(DataObjectMethodType.Select)]
public static IList<DomainUser> GetUsers()
{
return DirectoryAccess.GetUsers<DomainUser>(); //ユーザを取得
}
//表示用の名前を返します。
public override string ToString()
{
return this.DisplayName;
}
#endregion
}
少しですが説明はVBのコードの方に書いてます。