SqlMembershipProvider.FindUsersByEmail(String, Int32, Int32, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca kolekcję użytkowników członkostwa, dla których pole adres e-mail zawiera określony adres e-mail.
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
Parametry
- emailToMatch
- String
Adres e-mail do wyszukania.
- pageIndex
- Int32
Indeks strony wyników do zwrócenia. Funkcja pageIndex
rozpoczyna liczenie od zera.
- pageSize
- Int32
Rozmiar strony wyników do zwrócenia.
- totalRecords
- Int32
Całkowita liczba dopasowanych użytkowników.
Zwraca
Element MembershipUserCollection , który zawiera stronę obiektów rozpoczynających pageSize
MembershipUser się na stronie określonej przez pageIndex
.
Wyjątki
emailToMatch
jest dłuższa niż 256 znaków.
-lub-
Parametr pageIndex
ma wartość niższą niż zero.
-lub-
pageSize
jest mniejszy niż jeden.
-lub-
pageIndex
pomnożony przez pageSize
plus pageSize
minus jeden przekracza Int32.MaxValue.
Przykłady
Poniższy przykład kodu używa FindUsersByEmail metody do pobierania informacji o użytkowniku członkostwa i wyświetla wyniki na stronach danych.
Uwaga
W tym przykładzie Membership użyto klasy do wywołania SqlMembershipProvider określonej wartości w defaultProvider
pliku Web.config. Jeśli musisz uzyskać dostęp do domyślnego dostawcy jako typu SqlMembershipProvider, możesz rzutować Provider właściwość Membership klasy. Aby uzyskać dostęp do innych skonfigurowanych dostawców jako określonego typu dostawcy, możesz uzyskać do nich dostęp według ich skonfigurowanej Membership nazwy z właściwością Providers klasy i rzutować je jako określony typ dostawcy.
<%@ 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>
Uwagi
FindUsersByEmail Zwraca listę użytkowników członkostwa, w których adres e-mail zawiera dopasowanie do podanego emailToMatch
dla skonfigurowanego ApplicationNameelementu .
Wyszukuje SqlMembershipProvider nazwę użytkownika zgodną z wartością parametru emailToMatch
przy użyciu klauzuli LIKE. Symbole wieloznaczne programu SQL Server można uwzględnić w wartości parametru. Jeśli na przykład emailToMatch
parametr ma wartość "address@example.com", zostanie zwrócona informacja dla użytkowników z adresem e-mail "address@example.com", jeśli istnieje.
emailToMatch
Jeśli parametr ma wartość "%@example.com", zwracane są informacje dla użytkowników z adresem e-mail "address@example.com", "address2@example.com", "admin@example.com" itd.
Wyniki zwracane przez FindUsersByEmail element są ograniczone przez pageIndex
parametry i pageSize
. Parametr pageSize
identyfikuje maksymalną liczbę MembershipUser obiektów, które mają być zwracane w obiekcie MembershipUserCollection. Parametr pageIndex
określa, która strona wyników ma być zwracana, gdzie zero identyfikuje pierwszą stronę. Parametr totalRecords
jest parametrem ustawionym out
na całkowitą liczbę użytkowników członkostwa dla skonfigurowanego applicationName
parametru . Jeśli na przykład skonfigurowano applicationName
13 użytkowników, a pageIndex
wartość wynosiła 1 z wartością pageSize
5, MembershipUserCollection zwrócona wartość będzie zawierać od szóstego do dziesiątego zwróconego użytkownika. Parametr totalRecords
zostanie ustawiony na wartość 13.
Spacje wiodące i końcowe są przycinane z wartości parametru emailToMatch
.