ActiveDirectoryMembershipProvider.FindUsersByName Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a collection of users from the Active Directory data store based on the user name.
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
Parameters
- usernameToMatch
- String
The user name or portion of a user name to search for.
- pageIndex
- Int32
The index of the page of results to return. pageIndex
is zero-based.
- pageSize
- Int32
The size of the page of results to return.
- totalRecords
- Int32
When this method returns, contains the total number of records returned in the collection. This parameter is passed uninitialized.
Returns
A MembershipUserCollection containing pageSize
MembershipUser instances beginning at the page specified by pageIndex
.
Exceptions
The FindUsersByName(String, Int32, Int32, Int32) method is called before the ActiveDirectoryMembershipProvider instance is initialized.
usernameToMatch
is empty, or exceeds the maximum length for the user name (usually 256 characters).
-or-
usernameToMatch
contains commas.
-or-
pageIndex
is less than 0.
-or
pageSize
is less than 1.
-or-
pageSize
multiplied by pageIndex
, plus pageSize
, minus 1 is greater than Int32.MaxValue.
usernameToMatch
is null
.
The EnableSearchMethods property is false
.
Remarks
The FindUsersByName method returns a MembershipUserCollection instance containing the user records from the Active Directory data store for all user names that match the userNameToMatch
parameters. The records are returned sorted alphabetically by user name.
The results returned by the FindUsersByName method are constrained by the pageIndex
and pageSize
parameters. The pageSize
parameter specifies the maximum number of MembershipUser instances to return in the MembershipUserCollection. The pageIndex
parameter specifies which page of results to return, where 0 (zero) indicates the first page.
The totalRecords
parameter is an out
parameter that is set to the total number of matching membership users found in the Active Directory data store. For example, if there are 13 users for the configured data store, and the pageIndex
value was 1 with a pageSize
of 5, the MembershipUserCollection returned would contain the sixth through the tenth users. The totalRecords
parameter would be set to 13.
You can control whether to allow searching for users, by setting the EnableSearchMethods property in the application's configuration file using the enableSearchMethods
attribute of the membership Element (ASP.NET Settings Schema) element. Setting the EnableSearchMethods property value to false
causes the FindUsersByName method to throw a NotSupportedException exception.
The provider uses a subtree search starting at the search point specified in the connection string. See the ActiveDirectoryMembershipProvider class topic for more information about connection strings.
We recommend that you do not enable searching on production systems until you have confirmed that the search queries issued by the ActiveDirectoryMembershipProvider class do not adversely impact your directory server's performance. Since the ActiveDirectoryMembershipProvider class is designed for a stateless Web environment, it is unable to use the paging optimizations exposed by the underlying System.DirectoryServices APIs. This means that paging operations during searches against large directories are very expensive and should be avoided. Search operations are always issued against the directory server configured in the connection string, or an automatically selected server in the case of a connection string pointing at a domain. The provider does not use a global catalog for its search methods.