ProfileManager.FindInactiveProfilesByUserName Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft Profilinformationen für Profile ab, bei denen das Datum der letzten Aktivität am oder vor einem angegebenen Datum und einer angegebenen Uhrzeit liegt und bei denen der Benutzername des Profils einem angegebenen Namen entspricht.
Überlädt
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) |
Ruft Profilinformationen in Datenseiten für Profile ab, bei denen das Datum der letzten Aktivität am oder vor dem angegebenen Datum und der angegebenen Uhrzeit liegt und bei denen der Benutzername des Profils dem angegebenen Namen entspricht. |
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime) |
Ruft Profilinformationen für alle Profile ab, bei denen das Datum der letzten Aktivität am oder vor dem angegebenen Datum und der angegebenen Uhrzeit liegt und bei denen der Benutzername des Profils dem angegebenen Namen entspricht. |
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32)
Ruft Profilinformationen in Datenseiten für Profile ab, bei denen das Datum der letzten Aktivität am oder vor dem angegebenen Datum und der angegebenen Uhrzeit liegt und bei denen der Benutzername des Profils dem angegebenen Namen entspricht.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindInactiveProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch, DateTime userInactiveSinceDate, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public static System.Web.Profile.ProfileInfoCollection FindInactiveProfilesByUserName (System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch, DateTime userInactiveSinceDate, int pageIndex, int pageSize, out int totalRecords);
static member FindInactiveProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string * DateTime * int * int * int -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindInactiveProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String, userInactiveSinceDate As DateTime, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As ProfileInfoCollection
Parameter
- authenticationOption
- ProfileAuthenticationOption
Einer der ProfileAuthenticationOption-Werte, der angibt, ob anonyme Profile, authentifizierte Profile oder beide Profilarten zurückgegeben werden.
- usernameToMatch
- String
Der zu suchende Benutzername.
- userInactiveSinceDate
- DateTime
Ein DateTime, der festlegt, welche Benutzerprofile als inaktiv betrachtet werden. Wenn das LastActivityDate eines Benutzerprofils zu oder vor diesem Zeitpunkt (Datum und Uhrzeit) auftritt, gilt das Profil als inaktiv.
- pageIndex
- Int32
Der Index der zurückgegebenen Ergebnisseite.
pageIndex
ist nullbasiert.
- pageSize
- Int32
Die Größe der zurückzugebenden Ergebnisseite.
- totalRecords
- Int32
Diese Methode enthält bei der Rückgabe eine ganze Zahl, die die Gesamtanzahl von Profilen bezeichnet. Dieser Parameter wird nicht initialisiert übergeben.
Gibt zurück
Eine ProfileInfoCollection, die Benutzerprofilinformationen für inaktive Profile enthält, in denen der Benutzername dem angegebenen usernameToMatch
-Parameter entspricht.
Ausnahmen
usernameToMatch
ist null
.
usernameToMatch
ist eine leere Zeichenfolge ("").
- oder -
pageIndex
ist kleiner als Null.
- oder -
pageSize
ist kleiner als 1.
- oder -
pageIndex
Multipliziert mit pageSize
ist größer als Int32.MaxValue.
Beispiele
Im folgenden Codebeispiel kann ein Benutzer einen usernameToMatch
Wert und einen ProfileAuthenticationOption Wert angeben und Profilinformationen für alle übereinstimmenden Profile abrufen. Im Beispiel kann der Benutzer angeben, ob ausschließlich inaktive Profile zurückgegeben werden sollen. Wenn der Benutzer nur inaktive Profile angibt, wird die FindInactiveProfilesByUserName -Methode aufgerufen, andernfalls wird die FindProfilesByUserName -Methode aufgerufen.
Wichtig
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsbedrohung darstellt. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ 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>
Hinweise
Die FindInactiveProfilesByUserName -Methode wird verwendet, um Profilinformationen für nicht verwendete Benutzerprofile für die Anwendung abzurufen, die durch das applicationName
Attribut in der Konfigurationsdatei angegeben wird. Diese Methode ruft nur Profile ab, für die der Benutzername mit dem angegebenen usernameToMatch
Parameterwert übereinstimmt. Verwenden Sie den authenticationOption
Parameter, um anzugeben, ob nur anonyme Profile, nur authentifizierte Profile oder alle Profile durchsucht werden sollen. Von den durchsuchten Profilen wird jedes Profil zurückgegeben, das einen LastActivityDate hat, der am oder vor dem angegebenen userInactiveSinceDate
Parameterwert auftritt.
Die von FindInactiveProfilesByUserName zurückgegebenen Ergebnisse werden durch die pageIndex
Parameter und pageSize
eingeschränkt. Der pageSize
Parameter gibt die maximale Anzahl von ProfileInfo Objekten an, die in der ProfileInfoCollection Auflistung zurückgegeben werden sollen. Der pageIndex
Parameter gibt an, welche Ergebnisseite zurückgegeben werden soll. 0 identifiziert die erste Seite. Der totalRecords
Parameter ist ein out
Parameter, der auf die Gesamtzahl inaktiver Benutzerprofile für das konfigurierte applicationName
festgelegt ist, basierend auf den authenticationOption
Parametern und userInactiveSinceDate
. Wenn beispielsweise 13 Benutzer für das konfiguriert applicationName
sind und der pageIndex
Wert 1 mit einem pageSize
von 5 ist, enthält das ProfileInfoCollection zurückgegebene das sechste bis zehnte inaktive Profil. Der totalRecords
Parameter wird auf 13 festgelegt.
Beachten Sie, dass Ihr Profilanbieter möglicherweise Wildcardzeichen im usernameToMatch
Parameter unterstützt. Die -Methode der SqlProfileProvider -Klasse unterstützt beispielsweise FindInactiveProfilesByUserName Wildcardzeichen im usernameToMatch
Parameter.
Die FindInactiveProfilesByUserName -Methode ruft die FindInactiveProfilesByUserName Methode des Standardprofilanbieters auf. Der Standardprofilanbieter wird mithilfe des defaultProvider
Attributs des Profilkonfigurationselements angegeben. Wenn das Benutzerprofil Eigenschaften enthält, die von einem anderen Profilanbieter als dem Standardanbieter verwaltet werden, wird die Datenquelle für den anderen Profilanbieter nicht durchsucht. Um inaktive Profile zu finden, die von einem anderen Profilanbieter als dem Standardanbieter verwaltet werden, rufen Sie mithilfe Providers der -Eigenschaft einen Verweis auf den Profilanbieter ab, und rufen Sie die FindInactiveProfilesByUserName Methode des Anbieters direkt auf.
Weitere Informationen
Gilt für:
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime)
Ruft Profilinformationen für alle Profile ab, bei denen das Datum der letzten Aktivität am oder vor dem angegebenen Datum und der angegebenen Uhrzeit liegt und bei denen der Benutzername des Profils dem angegebenen Namen entspricht.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindInactiveProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch, DateTime userInactiveSinceDate);
public static System.Web.Profile.ProfileInfoCollection FindInactiveProfilesByUserName (System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch, DateTime userInactiveSinceDate);
static member FindInactiveProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string * DateTime -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindInactiveProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String, userInactiveSinceDate As DateTime) As ProfileInfoCollection
Parameter
- authenticationOption
- ProfileAuthenticationOption
Einer der ProfileAuthenticationOption-Enumerationswerte, der angibt, ob anonyme, authentifizierte oder beide Profiltypen zurückgegeben werden.
- usernameToMatch
- String
Der zu suchende Benutzername.
- userInactiveSinceDate
- DateTime
Ein DateTime, der festlegt, welche Benutzerprofile als inaktiv betrachtet werden. Wenn das LastActivityDate eines Benutzerprofils zu oder vor diesem Zeitpunkt (Datum und Uhrzeit) auftritt, gilt das Profil als inaktiv.
Gibt zurück
Eine ProfileInfoCollection, die Benutzerprofilinformationen für inaktive Profile enthält, in denen der Benutzername dem angegebenen usernameToMatch
-Parameter entspricht.
Ausnahmen
usernameToMatch
ist null
.
usernameToMatch
ist eine leere Zeichenfolge ("").
Beispiele
Im folgenden Codebeispiel kann ein Benutzer einen usernameToMatch
Wert und einen ProfileAuthenticationOption Enumerationswert angeben und Profilinformationen für alle übereinstimmenden Profile abrufen. Im Beispiel kann der Benutzer angeben, ob nur inaktive Profile zurückgegeben werden sollen. Wenn der Benutzer nur inaktive Profile angibt, wird die FindInactiveProfilesByUserName -Methode aufgerufen, andernfalls wird die FindProfilesByUserName -Methode aufgerufen.
Wichtig
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsbedrohung darstellt. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ 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>
Hinweise
Die FindInactiveProfilesByUserName -Methode wird verwendet, um Profilinformationen für alle nicht verwendeten Benutzerprofile für die Anwendung abzurufen, die durch das applicationName
Attribut in der Konfigurationsdatei angegeben wird. Diese Methode ruft nur Profile ab, für die der Profilbenutzername mit dem angegebenen usernameToMatch
Parameterwert übereinstimmt. Verwenden Sie den authenticationOption
Parameter, um anzugeben, ob nur anonyme Profile, nur authentifizierte Profile oder alle Profile durchsucht werden sollen. Von den durchsuchten Profilen jedes Profil mit einem LastActivityDate , das am oder vor dem angegebenen userInactiveSinceDate
Parameterwert auftritt, wird zurückgegeben.
Sie können diese Informationen in Datenseiten abrufen, indem Sie die Überladung für die Methode verwenden, die FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) zusätzliche pageIndex
Parameter und pageSize
benötigt.
Hinweis
Ihr Profilanbieter unterstützt möglicherweise Wildcardzeichen im usernameToMatch
Parameter. Die -Methode der SqlProfileProvider -Klasse unterstützt beispielsweise FindInactiveProfilesByUserName Wildcardzeichen im usernameToMatch
Parameter.
Die FindInactiveProfilesByUserName -Methode ruft die ProfileProvider.FindInactiveProfilesByUserName Methode des Standardprofilanbieters auf. Der Standardprofilanbieter wird mithilfe des defaultProvider
Attributs des Profilkonfigurationselements angegeben. Wenn das Benutzerprofil Eigenschaften enthält, die von einem anderen Profilanbieter als dem Standardanbieter verwaltet werden, wird die Datenquelle für den anderen Profilanbieter nicht durchsucht. Um inaktive Profile zu finden, die von einem anderen Profilanbieter als dem Standardanbieter verwaltet werden, rufen Sie mithilfe Providers der -Eigenschaft einen Verweis auf den Profilanbieter ab, und rufen Sie die FindInactiveProfilesByUserName Methode des Anbieters direkt auf.