Compartir a través de


SqlMembershipProvider.FindUsersByEmail(String, Int32, Int32, Int32) Método

Definición

Devuelve una colección de usuarios de pertenencia para los que el campo de dirección de correo electrónico contiene la dirección de correo electrónico especificada.

public:
 override System::Web::Security::MembershipUserCollection ^ FindUsersByEmail(System::String ^ emailToMatch, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public override System.Web.Security.MembershipUserCollection FindUsersByEmail (string emailToMatch, int pageIndex, int pageSize, out int totalRecords);
override this.FindUsersByEmail : string * int * int * int -> System.Web.Security.MembershipUserCollection
Public Overrides Function FindUsersByEmail (emailToMatch As String, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As MembershipUserCollection

Parámetros

emailToMatch
String

Dirección de correo electrónico que se va a buscar.

pageIndex
Int32

Índice de la página de resultados que se va a devolver. pageIndex es de base cero.

pageSize
Int32

Tamaño de la página de resultados que se va a devolver.

totalRecords
Int32

Número total de usuarios coincidentes.

Devoluciones

MembershipUserCollection que contiene una página de objetos pageSizeMembershipUser que comienza en la página especificada por pageIndex.

Excepciones

emailToMatch tiene más de 256 caracteres.

o bien

pageIndex es menor que cero.

o bien

pageSize es menor que uno.

o bien

pageIndex multiplicado por pageSize más pageSize menos uno supera Int32.MaxValue.

Ejemplos

En el ejemplo de código siguiente se usa el FindUsersByEmail método para recuperar la información de usuario de pertenencia y se muestran los resultados en páginas de datos.

Nota

En este ejemplo se usa la Membership clase para llamar SqlMembershipProvider al especificado como defaultProvider en el archivo Web.config. Si necesita tener acceso al proveedor predeterminado como tipo SqlMembershipProvider, puede convertir la Provider propiedad de la Membership clase . Para acceder a otros proveedores configurados como un tipo de proveedor específico, puede acceder a ellos por su nombre configurado con la Providers propiedad de la Membership clase y convertirlos como el tipo de proveedor específico.

<%@ Page Language="C#" %>
<%@ 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">

int pageSize = 5;
int totalUsers;
int totalPages;
int currentPage = 1;

private void GetUsers()
{
  UserGrid.DataSource = Membership.FindUsersByEmail(EmailTextBox.Text, 
                          currentPage - 1, 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();
}

public void GoButton_OnClick(object sender, EventArgs args)
{
  currentPage = 1;
  GetUsers();
}

</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>
<%@ 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.FindUsersByEmail(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>

Comentarios

FindUsersByEmail devuelve una lista de usuarios de pertenencia en la que la dirección de correo electrónico contiene una coincidencia con la proporcionada emailToMatch para el configurado ApplicationName.

SqlMembershipProvider Busca un nombre de usuario que coincida con el valor del emailToMatch parámetro mediante la cláusula LIKE. Los caracteres comodín de SQL Server se pueden incluir en el valor del parámetro. Por ejemplo, si el emailToMatch parámetro se establece en "address@example.com", se devuelve información para los usuarios con la dirección de correo electrónico "address@example.com", si existe. Si el emailToMatch parámetro se establece en "%@example.com", se devuelve la información de los usuarios con la dirección de correo electrónico "address@example.com", "address2@example.com", "admin@example.com", etc.

Los resultados devueltos por FindUsersByEmail están restringidos por los pageIndex parámetros y pageSize . El pageSize parámetro identifica el número máximo de MembershipUser objetos que se van a devolver en .MembershipUserCollection El pageIndex parámetro identifica la página de resultados que se va a devolver, donde cero identifica la primera página. El totalRecords parámetro es un out parámetro que se establece en el número total de usuarios de pertenencia para el configurado applicationName. Por ejemplo, si hay 13 usuarios para el configurado applicationNamey el pageIndex valor era 1 con un pageSize valor de 5, el MembershipUserCollection devuelto contendrá el sexto al décimo usuario devuelto. El totalRecords parámetro se establecería en 13.

Los espacios al inicio y al final se recortan del valor de parámetro emailToMatch.

Se aplica a

Consulte también