ProfileManager.FindInactiveProfilesByUserName Method (ProfileAuthenticationOption, String, DateTime)
Retrieves profile information for all profiles in which the last activity date occurred on or before the specified date and time and the user name for the profile matches the specified name.
Assembly: System.Web (in System.Web.dll)
Public Shared Function FindInactiveProfilesByUserName ( authenticationOption As ProfileAuthenticationOption, usernameToMatch As String, userInactiveSinceDate As Date ) As ProfileInfoCollection
Parameters
- authenticationOption
-
Type:
System.Web.Profile.ProfileAuthenticationOption
One of the ProfileAuthenticationOption enumeration values, specifying whether anonymous, authenticated, or both types of profiles are returned.
- usernameToMatch
-
Type:
System.String
The user name for which to search.
- userInactiveSinceDate
-
Type:
System.DateTime
A DateTime that identifies which user profiles are considered inactive. If the LastActivityDate of a user profile occurs on or before this date and time, the profile is considered inactive.
Return Value
Type: System.Web.Profile.ProfileInfoCollectionA ProfileInfoCollection containing user profile information for inactive profiles in which the user name matches the supplied usernameToMatch parameter.
| Exception | Condition |
|---|---|
| ArgumentNullException | usernameToMatch is null. |
| ArgumentException | usernameToMatch is an empty string (""). |
The FindInactiveProfilesByUserName method is used to retrieve profile information for all unused user profiles for the application specified by the applicationName attribute in the configuration file. This method will only retrieve profiles for which the profile user name matches the supplied usernameToMatch parameter value. Use the authenticationOption parameter to specify whether you want only anonymous profiles, only authenticated profiles, or all profiles to be searched. Of the searched profiles, any profile with a LastActivityDate that occurs on or before the specified userInactiveSinceDate parameter value is returned.
You can retrieve this information in pages of data using the overload for the FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) method that takes additional pageIndex and pageSize parameters.
Note |
|---|
Your profile provider may support wildcard characters in the usernameToMatch parameter. For example, the FindInactiveProfilesByUserName method of the SqlProfileProvider class supports wildcard characters in the usernameToMatch parameter. |
The FindInactiveProfilesByUserName method calls the ProfileProvider.FindInactiveProfilesByUserName method of the default profile provider. The default profile provider is specified using the defaultProvider attribute of the configuration element. If the user profile contains properties that are managed by a profile provider other than the default provider, the data source for the other profile provider is not searched. To find inactive profiles that are managed by a profile provider other than the default provider, obtain a reference to the profile provider using the Providers property and call the FindInactiveProfilesByUserName method of the provider directly.
The following code example allows a user to supply a usernameToMatch value and a ProfileAuthenticationOption enumeration value and retrieves profile information for any matching profiles. The sample allows the user to specify whether to return only inactive profiles. If the user specifies only inactive profiles, the FindInactiveProfilesByUserName method is called; otherwise, the FindProfilesByUserName method is called.
Security Note
|
|---|
This example contains a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview. |
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Profile" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Dim authOption As ProfileAuthenticationOption Dim inactiveDays As Integer = 90 Public Sub Page_Load() InactiveDaysLabel.Text = inactiveDays.ToString() authOption = GetAuthenticationOption() InactiveProfilesLabel.Text = ProfileManager.GetNumberOfInactiveProfiles(authOption, _ DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))).ToString() DeletedMessage.Text = "" End Sub Private Function GetProfiles() As ProfileInfoCollection Dim profiles As ProfileInfoCollection If ShowInactiveCheckBox.Checked Then profiles = ProfileManager.FindInactiveProfilesByUserName(authOption, _ UserNameTextBox.Text, _ DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))) Else profiles = ProfileManager.FindProfilesByUserName(authOption, _ UserNameTextBox.Text) End If Return profiles End Function Private Sub ShowProfiles() If UserNameTextBox.Text.Trim() = "" Then Msg.Text = "Please specify a user name." ProfileGrid.Visible = False Return End If Msg.Text = "" ProfileGrid.Visible = True ProfileGrid.DataSource = GetProfiles() ProfileGrid.DataBind() End Sub Public Sub GoButton_OnClick(sender As Object, args As EventArgs) ShowProfiles() End Sub Public Sub ShowInactiveCheckBox_OnCheckedChanged(sender As Object, args As EventArgs) ShowProfiles() End Sub Public Sub DeleteButton_OnClick(sender As Object, args As EventArgs) DeletedMessage.Text = ProfileManager.DeleteProfiles(GetProfiles()).ToString() & _ " profiles deleted." ShowProfiles() End Sub Public Sub AuthenticationOptionListBox_OnSelectedIndexChanged(sender As Object, args As EventArgs) authOption = GetAuthenticationOption() ShowProfiles() End Sub Private Function GetAuthenticationOption() As ProfileAuthenticationOption If Not AuthenticationOptionListBox.SelectedItem Is Nothing Then Select Case AuthenticationOptionListBox.SelectedItem.Value Case "Anonymous" Return ProfileAuthenticationOption.Anonymous Case "Authenticated" Return ProfileAuthenticationOption.Authenticated Case Else Return ProfileAuthenticationOption.All End Select End If Return ProfileAuthenticationOption.All End Function </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Sample: Find Profiles</title> </head> <body> <form id="form1" runat="server"> <h3>Profile List</h3> <asp:Label id="Msg" runat="Server" ForeColor="red" /><br /> <table border="0" cellpadding="3" cellspacing="3"> <tr> <td valign="top">UserName to Search for:</td> <td valign="top" colspan="2"> <asp:TextBox id="UserNameTextBox" runat="server" /> <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br /> </td> </tr> <tr> <td valign="top">Authentication Option</td> <td valign="top"><asp:ListBox id="AuthenticationOptionListBox" rows="3" runat="Server" AutoPostBack="true" OnSelectedIndexChanged="AuthenticationOptionListBox_OnSelectedIndexChanged"> <asp:ListItem value="All" selected="True">All</asp:ListItem> <asp:ListItem value="Authenticated">Authenticated</asp:ListItem> <asp:ListItem value="Anonymous">Anonymous</asp:ListItem> </asp:ListBox> </td> <td valign="top"><asp:CheckBox id="ShowInactiveCheckBox" Checked="false" AutoPostBack="true" runat="server" OnCheckedChanged="ShowInactiveCheckBox_OnCheckedChanged" /> Show profiles inactive for <asp:Label id="InactiveDaysLabel" runat="server" /> days only.<br /> There are <asp:Label id="InactiveProfilesLabel" runat="server" /> inactive profiles. </td> </tr> <tr> <td><asp:Button id="DeleteButton" runat="server" Text="Delete Profiles" OnClick="DeleteButton_OnClick" /> <br /><i>(based on search results)</i> </td> <td valign="top"><asp:Label id="DeletedMessage" runat="server" /></td> </tr> </table> <asp:DataGrid id="ProfileGrid" runat="server" CellPadding="2" CellSpacing="1" Gridlines="Both"> <HeaderStyle BackColor="darkblue" ForeColor="white" /> </asp:DataGrid> </form> </body> </html>
Available since 2.0

