ProfileManager.FindProfilesByUserName Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Recupera le informazioni sul profilo per i profili in cui il nome utente corrisponde a un nome specificato.
Overload
| Nome | Descrizione |
|---|---|
| FindProfilesByUserName(ProfileAuthenticationOption, String) |
Recupera tutte le informazioni sul profilo per i profili in cui il nome utente corrisponde al nome specificato. |
| FindProfilesByUserName(ProfileAuthenticationOption, String, Int32, Int32, Int32) |
Recupera le informazioni sul profilo nelle pagine di dati per i profili in cui il nome utente corrisponde al nome specificato. |
FindProfilesByUserName(ProfileAuthenticationOption, String)
Recupera tutte le informazioni sul profilo per i profili in cui il nome utente corrisponde al nome specificato.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch);
public static System.Web.Profile.ProfileInfoCollection FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch);
static member FindProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String) As ProfileInfoCollection
Parametri
- authenticationOption
- ProfileAuthenticationOption
Uno dei valori di ProfileAuthenticationOption enumerazione, specificando se vengono restituiti profili anonimi, autenticati o entrambi i tipi.
- usernameToMatch
- String
Nome utente per il quale eseguire la ricerca.
Restituisce
Oggetto ProfileInfoCollection contenente informazioni sul profilo utente per i profili in cui il nome utente corrisponde al parametro specificato usernameToMatch .
Eccezioni
usernameToMatch è null.
usernameToMatch è una stringa vuota ("").
Esempio
L'esempio di codice seguente consente a un utente di specificare un usernameToMatch valore e un ProfileAuthenticationOption valore di enumerazione e di recuperare le informazioni sul profilo per tutti i profili corrispondenti. L'esempio consente all'utente di specificare se restituire esclusivamente profili inattivi. Se l'utente specifica solo profili inattivi, viene chiamato il FindInactiveProfilesByUserName metodo ; in caso contrario, viene chiamato il FindProfilesByUserName metodo .
Importante
Questo esempio contiene una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza. Per impostazione predefinita, ASP.NET pagine Web verificare che l'input dell'utente non includa elementi SCRIPT o HTML. Per altre informazioni, vedere Cenni preliminari sugli exploit di script.
<%@ Page Language="C#" %>
<%@ 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">
ProfileAuthenticationOption authOption;
int inactiveDays = 90;
public void 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 = "";
}
private ProfileInfoCollection GetProfiles()
{
ProfileInfoCollection profiles;
if (ShowInactiveCheckBox.Checked)
{
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption,
UserNameTextBox.Text,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)));
}
else
{
profiles = ProfileManager.FindProfilesByUserName(authOption,
UserNameTextBox.Text);
}
return profiles;
}
private void ShowProfiles()
{
if (UserNameTextBox.Text.Trim() == "")
{
Msg.Text = "Please specify a user name.";
ProfileGrid.Visible = false;
return;
}
Msg.Text = "";
ProfileGrid.Visible = true;
ProfileGrid.DataSource = GetProfiles();
ProfileGrid.DataBind();
}
public void GoButton_OnClick(object sender, EventArgs args)
{
ShowProfiles();
}
public void ShowInactiveCheckBox_OnCheckedChanged(object sender, EventArgs args)
{
ShowProfiles();
}
public void DeleteButton_OnClick(object sender, EventArgs args)
{
DeletedMessage.Text = ProfileManager.DeleteProfiles(GetProfiles()).ToString() +
" profiles deleted.";
ShowProfiles();
}
public void AuthenticationOptionListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
authOption = GetAuthenticationOption();
ShowProfiles();
}
private ProfileAuthenticationOption GetAuthenticationOption()
{
if (AuthenticationOptionListBox.SelectedItem != null)
{
switch (AuthenticationOptionListBox.SelectedItem.Value)
{
case "Anonymous":
return ProfileAuthenticationOption.Anonymous;
break;
case "Authenticated":
return ProfileAuthenticationOption.Authenticated;
break;
default:
return ProfileAuthenticationOption.All;
break;
}
}
return ProfileAuthenticationOption.All;
}
</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>
<%@ 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>
Commenti
Il FindProfilesByUserName metodo restituisce un elenco di tutte le informazioni sul profilo per le quali il nome utente corrisponde al valore del parametro specificato usernameToMatch per il valore della proprietà configurata ApplicationName . Usare il authenticationOption parametro per specificare se si desidera cercare solo profili anonimi, solo profili autenticati o tutti i profili.
È possibile recuperare le informazioni sul profilo per i profili utente nelle pagine di dati usando l'overload per il FindProfilesByUserName metodo che accetta parametri e pageSize aggiuntivipageIndex.
Si noti che il provider di profili può supportare caratteri jolly nel usernameToMatch parametro . Ad esempio, il FindProfilesByUserName metodo della SqlProfileProvider classe supporta caratteri jolly nel usernameToMatch parametro .
Il FindProfilesByUserName metodo chiama il FindProfilesByUserName metodo del provider di profili predefinito. Il provider di profili predefinito viene specificato usando l'attributo defaultProvider dell'elemento di configurazione del profilo . Se il profilo utente contiene proprietà gestite da un provider di profili diverso dal provider predefinito, non viene eseguita la ricerca nell'origine dati per l'altro provider di profili. Per trovare i profili gestiti da un provider di profili diversi dal provider predefinito, ottenere un riferimento al provider di profili usando la Providers proprietà e chiamare direttamente il FindProfilesByUserName metodo del provider.
Vedi anche
Si applica a
FindProfilesByUserName(ProfileAuthenticationOption, String, Int32, Int32, Int32)
Recupera le informazioni sul profilo nelle pagine di dati per i profili in cui il nome utente corrisponde al nome specificato.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public static System.Web.Profile.ProfileInfoCollection FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);
static member FindProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string * int * int * int -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As ProfileInfoCollection
Parametri
- authenticationOption
- ProfileAuthenticationOption
Uno dei valori di ProfileAuthenticationOption enumerazione, specificando se vengono restituiti profili anonimi, autenticati o entrambi i tipi.
- usernameToMatch
- String
Nome utente per il quale eseguire la ricerca.
- pageIndex
- Int32
Indice della pagina dei risultati da restituire.
pageIndex è in base zero.
- pageSize
- Int32
Dimensioni della pagina dei risultati da restituire.
- totalRecords
- Int32
Quando termina, questo metodo contiene un numero intero che identifica il numero totale di profili. Questo parametro viene passato non inizializzato.
Restituisce
Oggetto ProfileInfoCollection contenente informazioni sul profilo utente per i profili in cui il nome utente corrisponde al parametro specificato usernameToMatch .
Eccezioni
usernameToMatch è null.
usernameToMatch è una stringa vuota ("").
oppure
pageIndex è minore di zero.
oppure
pageSize è minore di 1.
oppure
pageIndex moltiplicato per pageSize è maggiore di Int32.MaxValue.
Esempio
L'esempio di codice seguente consente a un utente di specificare un usernameToMatch valore e di ProfileAuthenticationOption recuperare le informazioni sul profilo per i profili corrispondenti. L'esempio consente all'utente di specificare se restituire esclusivamente profili inattivi. Se l'utente specifica solo profili inattivi, viene chiamato il FindInactiveProfilesByUserName metodo ; in caso contrario, viene chiamato il FindProfilesByUserName metodo .
Importante
Questo esempio contiene una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza. Per impostazione predefinita, ASP.NET pagine Web verificare che l'input dell'utente non includa elementi SCRIPT o HTML. Per altre informazioni, vedere Cenni preliminari sugli exploit di script.
<%@ Page Language="C#" %>
<%@ 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">
int pageSize = 5;
int totalProfiles;
int totalPages;
int currentPage = 1;
ProfileAuthenticationOption authOption;
int inactiveDays = 90;
public void 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 = "";
}
private ProfileInfoCollection GetProfiles()
{
ProfileInfoCollection profiles;
if (ShowInactiveCheckBox.Checked)
{
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption,
UserNameTextBox.Text,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)),
currentPage - 1, pageSize, out totalProfiles);
}
else
{
profiles = ProfileManager.FindProfilesByUserName(authOption,
UserNameTextBox.Text,
currentPage - 1, pageSize, out totalProfiles);
}
return profiles;
}
private void ShowProfiles()
{
if (UserNameTextBox.Text.Trim() == "")
{
Msg.Text = "Please specify a user name.";
NavigationPanel.Visible = false;
ProfileGrid.Visible = false;
return;
}
Msg.Text = "";
ProfileGrid.Visible = true;
ProfileGrid.DataSource = GetProfiles();
totalPages = ((totalProfiles - 1) / pageSize) + 1;
// Ensure that we do not navigate past the last page of users.
if (currentPage > totalPages)
{
currentPage = totalPages;
ShowProfiles();
return;
}
ProfileGrid.DataBind();
TotalProfilesLabel.Text = totalProfiles.ToString();
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 (totalProfiles <= 0)
NavigationPanel.Visible = false;
else
NavigationPanel.Visible = true;
}
public void NextButton_OnClick(object sender, EventArgs args)
{
currentPage = Convert.ToInt32(CurrentPageLabel.Text);
currentPage++;
ShowProfiles();
}
public void PreviousButton_OnClick(object sender, EventArgs args)
{
currentPage = Convert.ToInt32(CurrentPageLabel.Text);
currentPage--;
ShowProfiles();
}
public void GoButton_OnClick(object sender, EventArgs args)
{
currentPage = 1;
ShowProfiles();
}
public void ShowInactiveCheckBox_OnCheckedChanged(object sender, EventArgs args)
{
ShowProfiles();
}
public void DeleteButton_OnClick(object sender, EventArgs args)
{
ProfileManager.DeleteProfiles(GetProfiles());
DeletedMessage.Text = totalProfiles.ToString() + " profiles deleted.";
ShowProfiles();
}
public void AuthenticationOptionListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
authOption = GetAuthenticationOption();
ShowProfiles();
}
private ProfileAuthenticationOption GetAuthenticationOption()
{
if (AuthenticationOptionListBox.SelectedItem != null)
{
switch (AuthenticationOptionListBox.SelectedItem.Value)
{
case "Anonymous":
return ProfileAuthenticationOption.Anonymous;
break;
case "Authenticated":
return ProfileAuthenticationOption.Authenticated;
break;
default:
return ProfileAuthenticationOption.All;
break;
}
}
return ProfileAuthenticationOption.All;
}
</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:Panel id="NavigationPanel" Visible="false" runat="server">
<asp:Label id="TotalProfilesLabel" runat="server" /> profile(s) found.
<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="ProfileGrid" 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.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 pageSize As Integer = 5
Dim totalProfiles As Integer
Dim totalPages As Integer
Dim currentPage As Integer = 1
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)), _
currentPage - 1, pageSize, totalProfiles)
Else
profiles = ProfileManager.FindProfilesByUserName(authOption, _
UserNameTextBox.Text, _
currentPage - 1, pageSize, totalProfiles)
End If
Return profiles
End Function
Private Sub ShowProfiles()
If UserNameTextBox.Text.Trim() = "" Then
Msg.Text = "Please specify a user name."
NavigationPanel.Visible = False
ProfileGrid.Visible = False
Return
End If
Msg.Text = ""
ProfileGrid.Visible = True
ProfileGrid.DataSource = GetProfiles()
totalPages = ((totalProfiles - 1) \ pageSize) + 1
' Ensure that we do not navigate past the last page of users.
If currentPage > totalPages Then
currentPage = totalPages
ShowProfiles()
Return
End If
ProfileGrid.DataBind()
TotalProfilesLabel.Text = totalProfiles.ToString()
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 totalProfiles <= 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
ShowProfiles()
End Sub
Public Sub PreviousButton_OnClick(sender As Object, args As EventArgs)
currentPage = Convert.ToInt32(CurrentPageLabel.Text)
currentPage -= 1
ShowProfiles()
End Sub
Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
currentPage = 1
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)
ProfileManager.DeleteProfiles(GetProfiles())
DeletedMessage.Text = totalProfiles.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:Panel id="NavigationPanel" Visible="False" runat="server">
<asp:Label id="TotalProfilesLabel" runat="server" /> profile(s) found.
<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="ProfileGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both">
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:DataGrid>
</form>
</body>
</html>
Commenti
Il FindInactiveProfilesByUserName metodo restituisce un elenco di informazioni sul profilo per cui il nome utente del profilo corrisponde al valore del parametro fornito usernameToMatch dell'oggetto configurato ApplicationName. Usare il authenticationOption parametro per specificare se si desidera cercare solo profili anonimi, solo profili autenticati o tutti i profili.
Si noti che il provider di profili può supportare caratteri jolly nel usernameToMatch parametro . Ad esempio, il FindProfilesByUserName metodo della SqlProfileProvider classe supporta caratteri jolly nel usernameToMatch parametro .
I risultati restituiti da FindProfilesByUserName sono vincolati dai pageIndex parametri e pageSize . Il pageSize parametro identifica il numero massimo di ProfileInfo oggetti da restituire nell'oggetto ProfileInfoCollection. Il pageIndex parametro identifica la pagina dei risultati da restituire; zero identifica la prima pagina. Il totalRecords parametro è un out parametro impostato sul numero totale di profili utente inattivi per l'applicazione specificata dall'attributo applicationName nel file di configurazione, in base all'oggetto fornito authenticationOption. Ad esempio, se sono presenti 13 utenti per l'oggetto configurato applicationNamee il pageIndex valore è 1 con un pageSize valore pari a 5, il ProfileInfoCollection valore restituito conterrà il sesto tramite il decimo profilo. Il totalRecords parametro verrà impostato su 13.
Il FindInactiveProfilesByUserName metodo chiama il FindInactiveProfilesByUserName metodo del provider di profili predefinito. Il provider di profili predefinito viene specificato usando l'attributo defaultProvider dell'elemento di configurazione del profilo . Se il profilo utente contiene proprietà gestite da un provider di profili diverso dal provider predefinito, non viene eseguita la ricerca nell'origine dati per l'altro provider di profili. Per trovare i profili gestiti da un provider di profili diversi dal provider predefinito, ottenere un riferimento al provider di profili usando la Providers proprietà e chiamare direttamente il FindInactiveProfilesByUserName metodo del provider.