ActiveDirectoryMembershipUser クラス
アセンブリ: System.Web (system.web.dll 内)
![構文](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
![解説](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
ActiveDirectoryMembershipUser オブジェクトは、Active Directory メンバシップ データ ストア内の単一のメンバシップ ユーザーを表すのに使用されます。電子メールなどのメンバシップ ユーザーに関する情報を公開し、パスワードの変更やリセットなど、メンバシップ ユーザー情報を管理する機能を提供します。
Active Directory データ ストアを使用するようにアプリケーションが構成されている場合、アプリケーションのメンバシップ プロバイダによって ActiveDirectoryMembershipUser オブジェクトが返されます。別のデータ ストアを使用するように構成できるアプリケーションや、複数のデータ ストアを使用するアプリケーションの場合は、基本クラスの MembershipUser を参照できます。ActiveDirectoryMembershipUser オブジェクトは LastActivityDate プロパティと LastLoginDate プロパティを実装していません。このため、これらのメンバが ActiveDirectoryMembershipUser オブジェクトでアクセスされた場合にスローされる NotSupportedException を処理できるように準備しておく必要があります。
ActiveDirectoryMembershipUser クラスは、ActiveDirectoryMembershipProvider クラスによって使用される内部最適化処理を実装しており、これにより、UpdateUser メソッドの呼び出し時に発生する属性の更新回数を最小限に抑えることができます。また、SecurityIdentifier 表現 (ProviderUserKey プロパティで利用可能) をシリアル化することにより、例外がスローされることなく ActiveDirectoryMembershipUser オブジェクトのシリアル化と逆シリアル化を行うことができます。
ActiveDirectoryMembershipUser オブジェクトは、GetUser メソッドおよび CreateUser メソッドから返されます。また、GetAllUsers、FindUsersByName、および FindUsersByEmail の各メソッドによって返される MembershipUserCollection の一部になります。
既存のメンバシップ ユーザーの情報を更新する場合には、UpdateUser メソッドで ActiveDirectoryMembershipUser オブジェクトが必要になります。
ActiveDirectoryMembershipUser のプロパティは、Active Directory の属性にマップされます。ActiveDirectoryMembershipUser のプロパティとその既定の属性のマップを次の表に示します。
マップ可能である | ||
---|---|---|
ProviderUserKey | いいえ | |
userPrincipalName | はい。ただし、userPrincipalName または sAMAccountName のいずれかである必要があります。 | |
いいえ | ||
CreationDate | whenCreated | いいえ |
LastActivityDate | ActiveDirectoryMembershipProvider でサポートされていません。 | |
LastLoginDate | ActiveDirectoryMembershipProvider でサポートされていません。 | |
LastPasswordChangedDate | pwdLastSet | いいえ |
PasswordQuestion | なし。ただし、パスワードのリセットまたは取得に質問と解答形式のセキュリティを使用している場合は、属性にマップする必要があります。 | |
IsApproved | mDS-UserAccountDisabled (ADAM) | いいえ |
IsLockedOut | lockoutTime および AD ロックアウト期間から計算 (Windows 2000 上の AD) msDS-User-Account-Control-Computed (Windows Server 2003 上の AD) msDS-User-Account-Control-Computed (ADAM) | いいえ |
LastLockoutDate | 無効なパスワードが何度も試行されたことが原因でロックアウトされた場合は、ロックアウト時刻属性が返されます。 無効なパスワードの回答が何度も試行されたことが原因でロックアウトされた場合は、attributeMapFailedPasswordAnswerLockoutTime で定義された属性に格納された値が返されます。 1 つの無効なパスワードと多数の無効なパスワード試行の両方が原因でロックアウトされた場合は、最後の日付/時刻の値が返されます。 | いいえ |
![使用例](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
複数のメンバシップ データ ストアからユーザー情報を返す可能性のある、Web ページ上の ActiveDirectoryMembershipUser オブジェクトのプロパティを使用するコード例を次に示します。メンバシップ プロバイダから返された MembershipUser オブジェクトの基になる ActiveDirectoryMembershipUser オブジェクトは LastActivityDate プロパティと LastLoginDate プロパティを実装していないため、メンバシップ プロバイダから返されたユーザー オブジェクトの型が最初にチェックされ、その後でこれらのプロパティの内容が表示されます。
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim user As MembershipUser = Membership.GetUser() userName.Text = user.UserName emailAddress.Text = user.Email If TypeOf (user) Is ActiveDirectoryMembershipUser Then lastLoginDate.Text = "Not available" lastActivityDate.Text = "Not available" Else lastLoginDate.Text = user.LastLoginDate.ToString() lastActivityDate.Text = user.LastActivityDate.ToString() End If Dim sidValue As System.Security.Principal.SecurityIdentifier sidValue = CType(user.ProviderUserKey, System.Security.Principal.SecurityIdentifier) sid.Text = sidValue.ToString() End Sub </script> <html > <head runat="server"> <title>User information page</title> </head> <body> <form id="form1" runat="server"> <div> <table> <tr> <td> User name:</td> <td> <asp:Literal ID="userName" runat="server" /></td> </tr> <tr> <td> E-mail Address:</td> <td> <asp:Literal ID="emailAddress" runat="server" /></td> </tr> <tr> <td> Last Login Date:</td> <td> <asp:Literal ID="lastLoginDate" runat="server" /></td> </tr> <tr> <td> Last Activity Date:</td> <td> <asp:Literal ID="lastActivityDate" runat="server" /></td> </tr> <tr> <td> Security Identifier SID:</td> <td> <asp:Literal ID="sid" runat="server" /></td> </tr> </table> </div> </form> </body> </html>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { MembershipUser user = Membership.GetUser(); userName.Text = user.UserName; emailAddress.Text = user.Email; if (user is ActiveDirectoryMembershipUser) { lastLoginDate.Text = "Not available"; lastActivityDate.Text = "Not available"; } else { lastLoginDate.Text = user.LastLoginDate.ToShortDateString(); lastActivityDate.Text = user.LastActivityDate.ToShortDateString(); } System.Security.Principal.SecurityIdentifier sidValue = (System.Security.Principal.SecurityIdentifier)user.ProviderUserKey; sid.Text = sidValue.ToString(); } </script> <html > <head runat="server"> <title>User information</title> </head> <body> <form id="form1" runat="server"> <div> <table> <tr> <td> User name:</td> <td> <asp:Literal ID="userName" runat="server" /></td> </tr> <tr> <td> E-mail Address:</td> <td> <asp:Literal ID="emailAddress" runat="server" /></td> </tr> <tr> <td> Last Login Date:</td> <td> <asp:Literal ID="lastLoginDate" runat="server" /></td> </tr> <tr> <td> Last Activity Date:</td> <td> <asp:Literal ID="lastActivityDate" runat="server" /></td> </tr> <tr> <td> Security Identifier SID:</td> <td> <asp:Literal ID="sid" runat="server" /></td> </tr> </table> </div> </form> </body> </html>
![.NET Framework のセキュリティ](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
![継承階層](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
System.Web.Security.MembershipUser
System.Web.Security.ActiveDirectoryMembershipUser
![スレッド セーフ](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
![プラットフォーム](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
![バージョン情報](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
![参照](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
- ActiveDirectoryMembershipUser クラスのページへのリンク