SqlMembershipProvider.FindUsersByName(String, Int32, Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft eine Auflistung von Mitgliedschaftsbenutzern ab, deren Benutzername den angegebenen Vergleichsbenutzernamen enthält.
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
Parameter
- usernameToMatch
- String
Der zu suchende Benutzername.
- pageIndex
- Int32
Der Index der zurückzugebenden Ergebnisseite.
pageIndex
ist nullbasiert.
- pageSize
- Int32
Die Größe der zurückzugebenden Ergebnisseite.
- totalRecords
- Int32
Diese Methode enthält bei der Rückgabe die Gesamtzahl der zutreffenden Benutzer.
Gibt zurück
Eine MembershipUserCollection, die eine Seite mit pageSize
MembershipUser-Objekten enthält, die auf der durch pageIndex
angegebenen Seite beginnen.
Ausnahmen
usernameToMatch
ist eine leere Zeichenfolge ("") oder ist länger als 256 Zeichen.
- oder -
pageIndex
ist kleiner als Null.
- oder -
pageSize
ist kleiner als 1.
- oder -
pageIndex
Multipliziert mit pageSize
plus pageSize
minus 1 übersteigt Int32.MaxValue.
usernameToMatch
ist null
Beispiele
Im folgenden Codebeispiel wird die FindUsersByName -Methode verwendet, um Mitgliedschaftsbenutzerinformationen abzurufen und die Ergebnisse in Datenseiten anzuzeigen.
Hinweis
In diesem Beispiel wird System.Web.Security.SqlMembershipProvider verwendet, um das SqlMembershipProvider angegebene als in defaultProvider
der Web.config-Datei aufzurufen. Wenn Sie auf den Standardanbieter als Typ SqlMembershipProviderzugreifen müssen, können Sie die Provider -Eigenschaft der Membership -Klasse umwandeln. Um auf andere konfigurierte Anbieter als bestimmten Anbietertyp zuzugreifen, können Sie über ihren konfigurierten Namen mit der Providers -Eigenschaft der Membership -Klasse darauf zugreifen und sie als bestimmten Anbietertyp umwandeln.
<%@ 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>
Hinweise
FindUsersByName gibt eine Liste der Mitgliedschaftsbenutzer zurück, für die der Benutzername eine Übereinstimmung mit dem für den konfigurierten usernameToMatch
ApplicationNameenthält.
Sucht SqlMembershipProvider mithilfe der LIKE-Klausel nach einem Benutzernamen, der dem usernameToMatch
Parameterwert entspricht. Sql Server-Wildcardzeichen können in den Parameterwert eingeschlossen werden. Wenn der usernameToMatch
Parameter beispielsweise auf "user1" festgelegt ist, werden Benutzerinformationen für den Benutzer mit dem Benutzernamen "user1" zurückgegeben, sofern vorhanden. Wenn der usernameToMatch
Parameter auf "user%" festgelegt ist, werden Benutzerinformationen für Benutzer mit dem Benutzernamen "user1", "user2", "user_admin" usw. zurückgegeben.
Die von FindUsersByName zurückgegebenen Ergebnisse werden durch die pageIndex
Parameter und pageSize
eingeschränkt. Der pageSize
-Parameter gibt die maximale Anzahl von MembershipUser Objekten an, die MembershipUserCollectionin zurückgegeben werden sollen. Der pageIndex
Parameter gibt an, welche Ergebnisseite zurückgegeben werden soll, wobei null die erste Seite identifiziert. Der totalRecords
Parameter ist ein out
Parameter, der auf die Gesamtzahl der Mitgliedschaftsbenutzer für den konfigurierten applicationName
festgelegt ist. Wenn es beispielsweise 13 Benutzer für den konfigurierten applicationName
gibt und der pageIndex
Wert 1 mit einem pageSize
von 5 ist, enthält der MembershipUserCollection zurückgegebene den sechsten bis zehnten zurückgegebenen Benutzer. Der totalRecords
Parameter wird auf 13 festgelegt.
Beim usernameToMatch
-Parameterwert werden führende und nachstehende Leerzeichen abgeschnitten.