MembershipUserCollection クラス
アセンブリ: System.Web (system.web.dll 内)
構文<SerializableAttribute> _ Public NotInheritable Class MembershipUserCollection Implements ICollection, IEnumerable
解説System.Web.Security.MembershipUserCollection は、System.Web.Security.Membership クラスの GetAllUsers、FindUsersByName、および FindUsersByEmail メソッドによって返されます。GetAllUsers、FindUsersByName、および FindUsersByEmail メソッドが返す MembershipUserCollection オブジェクトには、メンバシップ データ ストアのユーザー情報のスナップショットが含まれます。つまり、MembershipUserCollection のメンバシップ ユーザー情報の変更内容はメンバシップ データ ストアに反映されません。メンバシップ データ ストアのメンバシップ ユーザー情報を変更するには、System.Web.Security.Membership クラスの UpdateUser、CreateUser、および DeleteUser メソッドを使用します。
使用例オンライン中のユーザー数とメンバシップ ユーザーの一覧を返すコード例を次に示します。メンバシップを使用するように構成された ASP.NET アプリケーションの例については、Membership クラスのトピックを参照してください。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Dim pageSize As Integer = 5 Dim totalUsers As Integer Dim totalPages As Integer Dim currentPage As Integer = 1 Public Sub Page_Load() If Not IsPostBack Then GetUsers() End If End Sub Private Sub GetUsers() UsersOnlineLabel.Text = Membership.GetNumberOfUsersOnline().ToString() UserGrid.DataSource = Membership.GetAllUsers(currentPage, pageSize, totalUsers) totalPages = ((totalUsers - 1) \ pageSize) + 1 ' Ensure that we do not navigate past the last page of users. If currentPage > totalPages Then currentPage = totalPages GetUsers() Return End If UserGrid.DataBind() CurrentPageLabel.Text = currentPage.ToString() TotalPagesLabel.Text = totalPages.ToString() If currentPage = totalPages Then NextButton.Visible = False Else NextButton.Visible = True End If If currentPage = 1 Then PreviousButton.Visible = False Else PreviousButton.Visible = True End If If totalUsers <= 0 Then NavigationPanel.Visible = False Else NavigationPanel.Visible = True End If End SUb Public Sub NextButton_OnClick(sender As Object, args As EventArgs) currentPage = Convert.ToInt32(CurrentPageLabel.Text) currentPage += 1 GetUsers() End Sub Public Sub PreviousButton_OnClick(sender As Object, args As EventArgs) currentPage = Convert.ToInt32(CurrentPageLabel.Text) currentPage -= 1 GetUsers() End Sub </script> <html> <head> <title>Sample: Find Users</title> </head> <body> <form runat="server"> <h3>User List</h3> Number of Users Online: <asp:Label id="UsersOnlineLabel" runat="Server" /><BR> <asp:Panel id="NavigationPanel" Visible="false" runat="server"> <table border=0 cellpadding=3 cellspacing=3> <tr> <td width=100>Page <asp:Label id="CurrentPageLabel" runat="server" /> of <asp:Label id="TotalPagesLabel" runat="server" /></td> <td width=60><asp:LinkButton id="PreviousButton" Text="< Prev" OnClick="PreviousButton_OnClick" runat="server" /></td> <td width=60><asp:LinkButton id="NextButton" Text="Next >" OnClick="NextButton_OnClick" runat="server" /></td> </tr> </table> </asp:Panel> <asp:DataGrid id="UserGrid" runat="server" CellPadding="2" CellSpacing="1" Gridlines="Both"> <HeaderStyle BackColor="darkblue" ForeColor="white" /> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> int pageSize = 5; int totalUsers; int totalPages; int currentPage = 1; public void Page_Load() { if (!IsPostBack) { GetUsers(); } } private void GetUsers() { UsersOnlineLabel.Text = Membership.GetNumberOfUsersOnline().ToString(); UserGrid.DataSource = Membership.GetAllUsers(currentPage, pageSize, out totalUsers); totalPages = ((totalUsers - 1) / pageSize) + 1; // Ensure that we do not navigate past the last page of users. if (currentPage > totalPages) { currentPage = totalPages; GetUsers(); return; } UserGrid.DataBind(); CurrentPageLabel.Text = currentPage.ToString(); TotalPagesLabel.Text = totalPages.ToString(); if (currentPage == totalPages) NextButton.Visible = false; else NextButton.Visible = true; if (currentPage == 1) PreviousButton.Visible = false; else PreviousButton.Visible = true; if (totalUsers <= 0) NavigationPanel.Visible = false; else NavigationPanel.Visible = true; } public void NextButton_OnClick(object sender, EventArgs args) { currentPage = Convert.ToInt32(CurrentPageLabel.Text); currentPage++; GetUsers(); } public void PreviousButton_OnClick(object sender, EventArgs args) { currentPage = Convert.ToInt32(CurrentPageLabel.Text); currentPage--; GetUsers(); } </script> <html> <head> <title>Sample: Find Users</title> </head> <body> <form runat="server"> <h3>User List</h3> Number of Users Online: <asp:Label id="UsersOnlineLabel" runat="Server" /><BR> <asp:Panel id="NavigationPanel" Visible="false" runat="server"> <table border=0 cellpadding=3 cellspacing=3> <tr> <td width=100>Page <asp:Label id="CurrentPageLabel" runat="server" /> of <asp:Label id="TotalPagesLabel" runat="server" /></td> <td width=60><asp:LinkButton id="PreviousButton" Text="< Prev" OnClick="PreviousButton_OnClick" runat="server" /></td> <td width=60><asp:LinkButton id="NextButton" Text="Next >" OnClick="NextButton_OnClick" runat="server" /></td> </tr> </table> </asp:Panel> <asp:DataGrid id="UserGrid" runat="server" CellPadding="2" CellSpacing="1" Gridlines="Both"> <HeaderStyle BackColor="darkblue" ForeColor="white" /> </asp:DataGrid> </form> </body> </html>
.NET Framework のセキュリティ
継承階層System.Web.Security.MembershipUserCollection
スレッド セーフ
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照MembershipUserCollection コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
解説MembershipUserCollection はメンバシップ プロバイダ実装側によって構築され、MembershipProvider 抽象クラスの GetAllUsers メソッドと FindUsersByName メソッドによって返されます。
使用例Public Overrides Function GetAllUsers(pageIndex As Integer, _ pageSize As Integer, _ ByRef totalRecords As Integer) _ As MembershipUserCollection Dim conn As OdbcConnection = New OdbcConnection(ConnectionString) Dim cmd As OdbcCommand = New OdbcCommand("SELECT Count(*) FROM [" & TableName & "] " & _ "WHERE ApplicationName = ?", conn) cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName Dim users As MembershipUserCollection = New MembershipUserCollection() Dim reader As OdbcDataReader = Nothing totalRecords = 0 Try conn.Open() totalRecords = CType(cmd.ExecuteScalar(), Integer) If totalRecords <= 0 Then Return users cmd.CommandText = "SELECT Username, Email, PasswordQuestion," & _ " Comment, IsApproved, CreationDate, LastLoginDate," & _ " LastActivityDate, LastPasswordChangedDate " & _ " FROM [" & TableName & "] " & _ " WHERE ApplicationName = ? " & _ " ORDER BY Username Asc" reader = cmd.ExecuteReader() Dim counter As Integer = 0 Dim startIndex As Integer = pageSize * pageIndex Dim endIndex As Integer = startIndex + pageSize - 1 Do While reader.Read() If counter >= startIndex Then Dim u As MembershipUser = GetUserFromReader(reader) users.Add(u) End If If counter >= endIndex Then cmd.Cancel() counter += 1 Loop Catch e As OdbcException ' Handle exception. Finally If Not reader Is Nothing Then reader.Close() conn.Close() End Try Return users End Function ' ' GetUserFromReader ' A helper function that takes the current row from the OdbcDataReader ' and populates a MembershipUser object with the values. Called by the ' MembershipUser.GetUser implementation. ' Public Function GetUserFromReader(reader As OdbcDataReader) As MembershipUser Dim providerUserKey As Object = reader.GetValue(0) Dim username As String = reader.GetString(1) Dim email As String = reader.GetString(2) Dim passwordQuestion As String = "" If Not reader.GetValue(3) Is DBNull.Value Then _ passwordQuestion = reader.GetString(3) Dim comment As String = "" If Not reader.GetValue(4) Is DBNull.Value Then _ comment = reader.GetString(4) Dim isApproved As Boolean = reader.GetBoolean(5) Dim isLockedOut As Boolean = reader.GetBoolean(6) Dim creationDate As DateTime = reader.GetDateTime(7) Dim lastLoginDate As DateTime = New DateTime() If Not reader.GetValue(8) Is DBNull.Value Then _ lastLoginDate = reader.GetDateTime(8) Dim lastActivityDate As DateTime = reader.GetDateTime(9) Dim lastPasswordChangedDate As DateTime = reader.GetDateTime(10) Dim lastLockedOutDate As DateTime = New DateTime() If Not reader.GetValue(11) Is DBNull.Value Then _ lastLockedOutDate = reader.GetDateTime(11) Dim u As MembershipUser = New MembershipUser(Me.Name, _ username, _ providerUserKey, _ email, _ passwordQuestion, _ comment, _ isApproved, _ isLockedOut, _ creationDate, _ lastLoginDate, _ lastActivityDate, _ lastPasswordChangedDate, _ lastLockedOutDate) Return u End Function
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { OdbcCommand cmd = new OdbcCommand("SELECT Count(*) FROM [" + TableName + "] " + "WHERE ApplicationName = ?", conn); cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName; MembershipUserCollection users = new MembershipUserCollection(); OdbcDataReader reader = null; totalRecords = 0; try { conn.Open(); totalRecords = (int)cmd.ExecuteScalar(); if (totalRecords <= 0) { return users; } cmd.CommandText = "SELECT Username, Email, PasswordQuestion," + " Comment, IsApproved, CreationDate, LastLoginDate," + " LastActivityDate, LastPasswordChangedDate " + " FROM [" + TableName + "] " + " WHERE ApplicationName = ? " + " ORDER BY Username Asc"; reader = cmd.ExecuteReader(); int counter = 0; int startIndex = pageSize * pageIndex; int endIndex = startIndex + pageSize - 1; while (reader.Read()) { if (counter >= startIndex) { MembershipUser u = GetUserFromReader(reader); users.Add(u); } if (counter >= endIndex) { cmd.Cancel(); } counter++; } } catch (OdbcException) { // Handle exception. } finally { if (reader != null) { reader.Close(); } conn.Close(); } return users; } // // GetUserFromReader // A helper function that takes the current row from the OdbcDataReader // and populates a MembershipUser object with the values. Called by the // MembershipUser.GetUser implementation. // public MembershipUser GetUserFromReader(OdbcDataReader reader) { object providerUserKey = reader.GetValue(0); string username = reader.GetString(1); string email = reader.GetString(2); string passwordQuestion = ""; if (reader.GetValue(3) != DBNull.Value) passwordQuestion = reader.GetString(3); string comment = ""; if (reader.GetValue(4) != DBNull.Value) comment = reader.GetString(4); bool isApproved = reader.GetBoolean(5); bool isLockedOut = reader.GetBoolean(6); DateTime creationDate = reader.GetDateTime(7); DateTime lastLoginDate = new DateTime(); if (reader.GetValue(8) != DBNull.Value) lastLoginDate = reader.GetDateTime(8); DateTime lastActivityDate = reader.GetDateTime(9); DateTime lastPasswordChangedDate = reader.GetDateTime(10); DateTime lastLockedOutDate = new DateTime(); if (reader.GetValue(11) != DBNull.Value) lastLockedOutDate = reader.GetDateTime(11); MembershipUser u = new MembershipUser(this.Name , username, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockedOutDate); return u; }
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照MembershipUserCollection プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Count | コレクションのメンバシップ ユーザー オブジェクトの数を取得します。 |
| IsSynchronized | メンバシップ ユーザーのコレクションがスレッド セーフかどうかを示す値を取得します。 |
| Item | 指定されたユーザー名が参照するコレクション内のメンバシップ ユーザーを取得します。 |
| SyncRoot | 同期のルートを取得します。 |
参照MembershipUserCollection メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Add | 指定されたメンバシップ ユーザーをコレクションに追加します。 |
| Clear | コレクションからすべてのメンバシップ ユーザー オブジェクトを削除します。 |
| CopyTo | メンバシップ ユーザーのコレクションを 1 次元配列にコピーします。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
| GetEnumerator | メンバシップ ユーザーのコレクションを反復処理できる列挙子を取得します。 |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| Remove | 指定したユーザー名のメンバシップ ユーザー オブジェクトをコレクションから削除します。 |
| SetReadOnly | メンバシップ ユーザーのコレクションの内容を読み取り専用にします。 |
| ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
明示的インターフェイスの実装| 名前 | 説明 | |
|---|---|---|
| System.Collections.ICollection.CopyTo | MembershipUserCollection オブジェクトの内容を Array にコピーします。Array の特定のインデックスからコピーが開始されます。 |
参照MembershipUserCollection メンバ
MembershipUserCollection データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Count | コレクションのメンバシップ ユーザー オブジェクトの数を取得します。 |
| IsSynchronized | メンバシップ ユーザーのコレクションがスレッド セーフかどうかを示す値を取得します。 |
| Item | 指定されたユーザー名が参照するコレクション内のメンバシップ ユーザーを取得します。 |
| SyncRoot | 同期のルートを取得します。 |
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Add | 指定されたメンバシップ ユーザーをコレクションに追加します。 |
| Clear | コレクションからすべてのメンバシップ ユーザー オブジェクトを削除します。 |
| CopyTo | メンバシップ ユーザーのコレクションを 1 次元配列にコピーします。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
| GetEnumerator | メンバシップ ユーザーのコレクションを反復処理できる列挙子を取得します。 |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| Remove | 指定したユーザー名のメンバシップ ユーザー オブジェクトをコレクションから削除します。 |
| SetReadOnly | メンバシップ ユーザーのコレクションの内容を読み取り専用にします。 |
| ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
明示的インターフェイスの実装| 名前 | 説明 | |
|---|---|---|
| System.Collections.ICollection.CopyTo | MembershipUserCollection オブジェクトの内容を Array にコピーします。Array の特定のインデックスからコピーが開始されます。 |
参照Weblioに収録されているすべての辞書からMembershipUserCollectionを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からMembershipUserCollection
を検索
- MembershipUserCollectionのページへのリンク