다음을 통해 공유


MembershipUserCollection.Add(MembershipUser) 메서드

정의

지정된 멤버 자격 사용자를 컬렉션에 추가합니다.

public:
 void Add(System::Web::Security::MembershipUser ^ user);
public void Add (System.Web.Security.MembershipUser user);
member this.Add : System.Web.Security.MembershipUser -> unit
Public Sub Add (user As MembershipUser)

매개 변수

user
MembershipUser

컬렉션에 추가할 MembershipUser 개체입니다.

예외

컬렉션이 읽기 전용입니다.

userUserName이 null인 경우

userUserName 값이 같은 MembershipUser 개체가 컬렉션에 이미 있는 경우

예제

다음 코드 예제에서는 샘플 GetAllUsers 구현을 보여줍니다.

public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
{
  OdbcCommand cmd = new OdbcCommand("SELECT Count(*) FROM Users  " +
                                    "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 Users  " + 
             " 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;
}
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 Users  " & _
                                                     "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 Users  " & _
                                  " 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

설명

메서드는 Add 일반적으로 추상 클래스의 , FindUsersByEmailFindUsersByName 메서드의 GetAllUsers멤버 자격 공급자 구현에서 MembershipProvider 사용됩니다.

적용 대상

추가 정보