SqlMembershipProvider.FindUsersByName(String, Int32, Int32, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar en samling medlemskapsanvändare där användarnamnet innehåller det angivna användarnamnet som ska matchas.
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
Parametrar
- usernameToMatch
- String
Användarnamnet som ska sökas efter.
- pageIndex
- Int32
Indexet för den resultatsida som ska returneras.
pageIndex är nollbaserat.
- pageSize
- Int32
Storleken på sidan med resultat som ska returneras.
- totalRecords
- Int32
När den här metoden returneras innehåller det totala antalet matchade användare.
Returer
En MembershipUserCollection som innehåller en sida med pageSizeMembershipUser objekt som börjar på sidan som anges av pageIndex.
Undantag
usernameToMatch är en tom sträng ("") eller är längre än 256 tecken.
-eller-
pageIndex är mindre än noll.
-eller-
pageSize är mindre än 1.
-eller-
pageIndex multiplicerat pageSize med plus pageSize minus ett överskrider Int32.MaxValue.
usernameToMatch är null.
Exempel
I följande kodexempel används FindUsersByName metoden för att hämta information om medlemskapsanvändare och visar resultatet i sidor med data.
Note
I det här exemplet används System.Web.Security.SqlMembershipProvider för att anropa den SqlMembershipProvider angivna som defaultProvider i filen Web.config. Om du behöver komma åt standardprovidern som typ SqlMembershipProviderkan du omvandla Provider egenskapen för Membership klassen. För att få åtkomst till andra konfigurerade leverantörer som en specifik providertyp kan du komma åt dem med deras konfigurerade namn med Providers egenskapen Membership för klassen och omvandla dem som den specifika providertypen.
<%@ 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>
Kommentarer
FindUsersByName returnerar en lista över medlemskapsanvändare för vilka användarnamnet innehåller en matchning med den angivna usernameToMatch för den konfigurerade ApplicationName.
Söker SqlMembershipProvider efter ett användarnamn som matchar usernameToMatch parametervärdet med hjälp av LIKE-satsen. SQL Server jokertecken kan inkluderas med parametervärdet. Om parametern usernameToMatch till exempel är inställd på "user1" returneras användarinformation för användaren med användarnamnet "user1" om den finns. Om parametern usernameToMatch är inställd på "användare%", returneras användarinformation för användare med användarnamnet "user1", "user2", "user_admin" och så vidare.
Resultaten som returneras av FindUsersByName begränsas av parametrarna pageIndex och pageSize . Parametern pageSize identifierar det maximala antalet MembershipUser objekt som ska returneras MembershipUserCollectioni . Parametern pageIndex identifierar vilken sida med resultat som ska returneras, där noll identifierar den första sidan. Parametern totalRecords är en out parameter som är inställd på det totala antalet medlemskapsanvändare för den konfigurerade applicationName. Om det till exempel finns 13 användare för den konfigurerade applicationName, och pageIndex värdet var 1 med en pageSize av 5, skulle den MembershipUserCollection returnerade innehålla den sjätte till och med den tionde användare som returnerades. Parametern totalRecords skulle vara inställd på 13.
Inledande och avslutande blanksteg trimmas från usernameToMatch parametervärdet.