ローカルユーザを表すクラス LocalUser クラスは DirectoryObject クラスを継承し IUser インターフェイスを実装します。
ローカルユーザはWindowsアプリでしか使わないので、単に IUser インターフェイスを実装しただけのクラスです。
VB
Public NotInheritable Class LocalUser
Inherits DirectoryObject
Implements IUser
#Region " フレンドコンストラクタ "
'DirectoryEntry を指定して LocalUser クラスの新しいインスタンスを初期化します。
Friend Sub New(entry As DirectoryEntry)
MyBase.New(entry)
End Sub
#End Region
#Region " パブリックプロパティ "
'アカウントが無効かどうかを取得または設定します。
Public Property Disabled As Boolean Implements IUser.Disabled
Get
If MyBase.IsDisposed Then
Throw New ObjectDisposedException(Me.GetType().Name)
End If
Return DirectCast(MyBase.Entry.NativeObject, IADsUser).AccountDisabled
End Get
Set(value As Boolean)
If MyBase.IsDisposed Then
Throw New ObjectDisposedException(Me.GetType().Name)
End If
DirectCast(MyBase.Entry.NativeObject, IADsUser).AccountDisabled = value
End Set
End Property
'フルネームを取得または設定します。
Public Property FullName As String Implements IUser.FullName
Get
If MyBase.IsDisposed Then
Throw New ObjectDisposedException(Me.GetType().Name)
End If
Return DirectCast(MyBase.Entry.Properties.Item("FullName").Value, String)
End Get
Set(value As String)
If MyBase.IsDisposed Then
Throw New ObjectDisposedException(Me.GetType().Name)
End If
MyBase.Entry.Properties.Item("FullName").Value = value
End Set
End Property
'Entry の ADSI User オブジェクトを取得します。
Public ReadOnly Property Native As IADsUser Implements IUser.Native
Get
If MyBase.IsDisposed Then
Throw New ObjectDisposedException(Me.GetType().Name)
End If
Return DirectCast(MyBase.Entry.NativeObject, IADsUser)
End Get
End Property
#End Region
End Class
C#
public sealed class LocalUser : DirectoryObject, IUser
{
#region インターナルコンストラクタ
//DirectoryEntry を指定して LocalUser クラスの新しいインスタンスを初期化します。
internal LocalUser(DirectoryEntry entry)
: base(entry)
{
}
#endregion
#region パブリックプロパティ
//アカウントが無効かどうかを取得または設定します。
public bool Disabled
{
get
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
return ((IADsUser)base.Entry.NativeObject).AccountDisabled;
}
set
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
((IADsUser)base.Entry.NativeObject).AccountDisabled = value;
}
}
//フルネームを取得または設定します。
public string FullName
{
get
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
return (string)base.Entry.Properties["FullName"].Value;
}
set
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
base.Entry.Properties["FullName"].Value = value;
}
}
//Entry の ADSI User オブジェクトを取得します。
public IADsUser Native
{
get
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
return (IADsUser)base.Entry.NativeObject;
}
}
#endregion
}