SqlMembershipProvider.FindUsersByName Method
Gets a collection of membership users where the user name contains the specified user name to match.
Assembly: System.Web (in System.Web.dll)
'Declaration Public Overrides Function FindUsersByName ( _ usernameToMatch As String, _ pageIndex As Integer, _ pageSize As Integer, _ <OutAttribute> ByRef totalRecords As Integer _ ) As MembershipUserCollection
Parameters
- usernameToMatch
- Type: System.String
The user name to search for.
- pageIndex
- Type: System.Int32
The index of the page of results to return. pageIndex is zero-based.
- pageSize
- Type: System.Int32
The size of the page of results to return.
- totalRecords
- Type: System.Int32%
When this method returns, contains the total number of matched users.
Return Value
Type: System.Web.Security.MembershipUserCollectionA MembershipUserCollection that contains a page of pageSize MembershipUser objects beginning at the page specified by pageIndex.
| Exception | Condition |
|---|---|
| System.ArgumentException | usernameToMatch is an empty string ("") or is longer than 256 characters. - or - pageIndex is less than zero. - or - pageSize is less than 1. - or - pageIndex multiplied by pageSize plus pageSize minus one exceeds Int32.MaxValue. |
| System.ArgumentNullException | usernameToMatch is Nothing. |
FindUsersByName returns a list of membership users for which the user name contains a match with the supplied usernameToMatch for the configured ApplicationName.
The SqlMembershipProvider searches for a user name that matches the usernameToMatch parameter value, using the LIKE clause. SQL Server wildcard characters can be included with the parameter value. For example, if the usernameToMatch parameter is set to "user1", then user information for the user with the user name of "user1" is returned, if it exists. If the usernameToMatch parameter is set to "user%", then user information for users with the user name of "user1", "user2", "user_admin", and so on are returned.
The results returned by FindUsersByName are constrained by the pageIndex and pageSize parameters. The pageSize parameter identifies the maximum number of MembershipUser objects to return in the MembershipUserCollection. The pageIndex parameter identifies which page of results to return, where zero identifies the first page. The totalRecords parameter is an out parameter that is set to the total number of membership users for the configured applicationName. For example, if there are 13 users for the configured applicationName, and the pageIndex value was 1 with a pageSize of 5, the MembershipUserCollection returned would contain the sixth through the tenth users returned. The totalRecords parameter would be set to 13.
Leading and trailing spaces are trimmed from the usernameToMatch parameter value.
The following code example uses the FindUsersByName method to retrieve membership user information and displays the results in pages of data.
Note |
|---|
This example uses System.Web.Security.SqlMembershipProvider to call the SqlMembershipProvider specified as the defaultProvider in the Web.config file. If you need to access the default provider as the type SqlMembershipProvider, you can cast the Provider property of the Membership class. To access other configured providers as a specific provider type, you can access them by their configured name with the Providers property of the Membership class and cast them as the specific provider type. |
<%@ 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>
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note