SqlMembershipProvider.FindUsersByName(String, Int32, Int32, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá kolekci uživatelů členství, kde uživatelské jméno obsahuje zadané uživatelské jméno, které se má shodovat.
public:
override System::Web::Security::MembershipUserCollection ^ FindUsersByName(System::String ^ usernameToMatch, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public override System.Web.Security.MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);
override this.FindUsersByName : string * int * int * int -> System.Web.Security.MembershipUserCollection
Public Overrides Function FindUsersByName (usernameToMatch As String, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As MembershipUserCollection
Parametry
- usernameToMatch
- String
Uživatelské jméno, které chcete vyhledat.
- pageIndex
- Int32
Index stránky výsledků, která se má vrátit.
pageIndex je založen na nule.
- pageSize
- Int32
Velikost stránky výsledků, která se má vrátit.
- totalRecords
- Int32
Když tato metoda vrátí, obsahuje celkový počet odpovídajících uživatelů.
Návraty
AMembershipUserCollection, který obsahuje stránku pageSizeMembershipUser objektů začínajících na stránce určené .pageIndex
Výjimky
usernameToMatch je prázdný řetězec ("") nebo je delší než 256 znaků.
nebo
Hodnota pageIndex je menší než nula.
nebo
pageSize je menší než 1.
nebo
pageIndex vynásobeno pageSize plus minus pageSize jeden překračuje Int32.MaxValue.
usernameToMatch je null.
Příklady
Následující příklad kódu používá metodu FindUsersByName k načtení informací o uživateli členství a zobrazí výsledky na stránkách dat.
Poznámka:
Tento příklad používá System.Web.Security.SqlMembershipProvider k volání SqlMembershipProvider zadané jako v defaultProvider souboru Web.config. Pokud potřebujete přistupovat k výchozímu poskytovateli jako typ SqlMembershipProvider, můžete přetypovat Provider vlastnost Membership třídy. Pokud chcete získat přístup k jiným nakonfigurovaným poskytovatelům jako konkrétnímu typu poskytovatele, můžete k nim přistupovat podle jejich nakonfigurovaného názvu s Providers vlastností Membership třídy a přetypovat je jako konkrétní typ zprostředkovatele.
<%@ 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.FindUsersByName(UsernameTextBox.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</title>
</head>
<body>
<form id="form1" runat="server">
<h3>User List</h3>
Username to Search for:
<asp:TextBox id="UsernameTextBox" 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.FindUsersByName(UsernameTextBox.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</title>
</head>
<body>
<form id="form1" runat="server">
<h3>User List</h3>
Username to Search for:
<asp:TextBox id="UsernameTextBox" 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>
Poznámky
FindUsersByName vrátí seznam uživatelů členství, pro které uživatelské jméno obsahuje shodu se zadaným usernameToMatch pro konfigurované ApplicationName.
Vyhledá SqlMembershipProvider uživatelské jméno, které odpovídá hodnotě parametru usernameToMatch , pomocí klauzule LIKE. Zástupné znaky SQL Serveru lze zahrnout do hodnoty parametru. Pokud je například usernameToMatch parametr nastaven na "user1", vrátí se informace o uživateli s uživatelským jménem "user1", pokud existuje.
usernameToMatch Pokud je parametr nastavený na "user%", vrátí se informace o uživateli s uživatelským jménem "user1", "user2", "user_admin" atd.
Výsledky vrácené jsou FindUsersByName omezené parametry pageIndex a pageSize parametry. Parametr pageSize identifikuje maximální počet MembershipUser objektů, které se mají vrátit v objektu MembershipUserCollection. Parametr pageIndex určuje, která stránka výsledků se má vrátit, kde nula identifikuje první stránku. Parametr totalRecords je out parametr, který je nastaven na celkový počet uživatelů členství pro konfigurovaný applicationName. Pokud je například nakonfigurovaných applicationName13 uživatelů a pageIndex hodnota byla 1 s pageSize hodnotou 5, MembershipUserCollection vrácená hodnota by obsahovala šestý až desátý vrácený uživatel. Parametr totalRecords by byl nastaven na hodnotu 13.
Počáteční a koncové mezery se oříznou z hodnoty parametru usernameToMatch .