MembershipUserCollectionとは? わかりやすく解説

MembershipUserCollection クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

MembershipUser オブジェクトのコレクション。

名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)
構文構文

<SerializableAttribute> _
Public NotInheritable Class
 MembershipUserCollection
    Implements ICollection, IEnumerable
Dim instance As MembershipUserCollection
[SerializableAttribute] 
public sealed class MembershipUserCollection
 : ICollection, IEnumerable
[SerializableAttribute] 
public ref class MembershipUserCollection sealed
 : ICollection, IEnumerable
/** @attribute SerializableAttribute() */ 
public final class MembershipUserCollection
 implements ICollection, IEnumerable
SerializableAttribute 
public final 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 のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
  System.Web.Security.MembershipUserCollection
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

MembershipUserCollection コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

空のメンバシップ ユーザーのコレクションを新規作成します。

名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As New MembershipUserCollection
public MembershipUserCollection ()
public:
MembershipUserCollection ()
public MembershipUserCollection ()
public function MembershipUserCollection ()
解説解説

MembershipUserCollection はメンバシップ プロバイダ実装側によって構築され、MembershipProvider 抽象クラスの GetAllUsers メソッドと FindUsersByName メソッドによって返されます。

使用例使用例

GetAllUsers を実装するコード例を次に示します。

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;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MembershipUserCollection クラス
MembershipUserCollection メンバ
System.Web.Security 名前空間
その他の技術情報
メンバシップを使用したユーザーの管理

MembershipUserCollection プロパティ


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 から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Collections.ICollection.CopyTo MembershipUserCollection オブジェクトの内容を Array にコピーします。Array の特定のインデックスからコピーが開始されます。
参照参照

関連項目

MembershipUserCollection クラス
System.Web.Security 名前空間

その他の技術情報

メンバシップを使用したユーザーの管理

MembershipUserCollection メンバ

MembershipUser オブジェクトのコレクション。

MembershipUserCollection データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド 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 から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Collections.ICollection.CopyTo MembershipUserCollection オブジェクトの内容を Array にコピーします。Array の特定のインデックスからコピーが開始されます。
参照参照

関連項目

MembershipUserCollection クラス
System.Web.Security 名前空間

その他の技術情報

メンバシップを使用したユーザーの管理



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「MembershipUserCollection」の関連用語

MembershipUserCollectionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MembershipUserCollectionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS