SqlMembershipProvider.FindUsersByEmail Method

Returns a collection of membership users for which the e-mail address field contains the specified e-mail address.

Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)

'Declaration
Public Overrides Function FindUsersByEmail ( _
	emailToMatch As String, _
	pageIndex As Integer, _
	pageSize As Integer, _
	<OutAttribute> ByRef totalRecords As Integer _
) As MembershipUserCollection
'Usage
Dim instance As SqlMembershipProvider
Dim emailToMatch As String
Dim pageIndex As Integer
Dim pageSize As Integer
Dim totalRecords As Integer
Dim returnValue As MembershipUserCollection

returnValue = instance.FindUsersByEmail(emailToMatch, pageIndex, pageSize, totalRecords)
public MembershipUserCollection FindUsersByEmail (
	String emailToMatch, 
	int pageIndex, 
	int pageSize, 
	/** @attribute OutAttribute() */ /** @ref */ int totalRecords
)
Not applicable.

Parameters

emailToMatch

The e-mail address to search for.

pageIndex

The index of the page of results to return. pageIndex is zero-based.

pageSize

The size of the page of results to return.

totalRecords

The total number of matched users.

Return Value

A MembershipUserCollection that contains a page of pageSizeMembershipUser objects beginning at the page specified by pageIndex.

Exception typeCondition

System.ArgumentException

emailToMatch is longer than 256 characters.

- or -

pageIndex is less than zero.

- or -

pageSize is less than one.

- or -

pageIndex multiplied by pageSize plus pageSize minus one exceeds Int32.MaxValue.

FindUsersByEmail returns a list of membership users in which the e-mail address contains a match with the supplied emailToMatch for the configured ApplicationName.

The SqlMembershipProvider searches for a user name that matches the emailToMatch parameter value, using the LIKE clause. SQL Server wildcard characters can be included in the parameter value. For example, if the emailToMatch parameter is set to "address@example.com", then information for users with the e-mail address "address@example.com" is returned, if it exists. If the emailToMatch parameter is set to "%@example.com", then information for users with the e-mail address "address@example.com", "address2@example.com", "admin@example.com", and so on is returned.

The results returned by FindUsersByEmail are constrained by the pageIndex and pageSize parameters. The pageSize parameter identifies the maximum number of MembershipUser objects to return in the MembershipUserCollection. The pageIndex parameter identifies which page of results to return, where zero identifies the first page. The totalRecords parameter is an out parameter that is set to the total number of membership users for the configured applicationName. For example, if there are 13 users for the configured applicationName, and the pageIndex value was 1 with a pageSize of 5, the MembershipUserCollection returned would contain the sixth through tenth users returned. The totalRecords parameter would be set to 13.

Leading and trailing spaces are trimmed from the emailToMatch parameter value.

The following code example uses the FindUsersByEmail method to retrieve membership user information and displays the results in pages of data.

NoteNote:

This example uses the Membership class to call the SqlMembershipProvider specified as the defaultProvider in the Web.config file. If you need to access the default provider as the type SqlMembershipProvider, you can cast the Provider property of the Membership class. To access other configured providers as a specific provider type, you can access them by their configured name with the Providers property of the Membership class and cast them as the specific provider type.

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Dim pageSize As Integer = 5
Dim totalUsers As Integer
Dim totalPages As Integer
Dim currentPage As Integer = 1

Private Sub GetUsers()
  UserGrid.DataSource = Membership.FindUsersByName(EmailTextBox.Text, _
                          currentPage - 1, 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

Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
  currentPage = 1
  GetUsers()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Find Users by Email</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>User List</h3>

  Email address to Search for: 
    <asp:TextBox id="EmailTextBox" runat="server" />
    <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />

  <asp:Panel id="NavigationPanel" Visible="False" runat="server">
    <table border="0" cellpadding="3" cellspacing="3">
      <tr>
        <td style="width:100">Page <asp:Label id="CurrentPageLabel" runat="server" />
            of <asp:Label id="TotalPagesLabel" runat="server" /></td>
        <td style="width:60"><asp:LinkButton id="PreviousButton" Text="< Prev"
                            OnClick="PreviousButton_OnClick" runat="server" /></td>
        <td style="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>

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show: