ProfileManager.FindInactiveProfilesByUserName Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengambil informasi profil untuk profil tempat tanggal aktivitas terakhir terjadi pada atau sebelum tanggal dan waktu tertentu dan nama pengguna untuk profil cocok dengan nama yang ditentukan.
Overload
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) |
Mengambil informasi profil di halaman data untuk profil tempat tanggal aktivitas terakhir terjadi pada atau sebelum tanggal dan waktu yang ditentukan dan nama pengguna untuk profil cocok dengan nama yang ditentukan. |
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime) |
Mengambil informasi profil untuk semua profil tempat tanggal aktivitas terakhir terjadi pada atau sebelum tanggal dan waktu yang ditentukan dan nama pengguna untuk profil cocok dengan nama yang ditentukan. |
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32)
Mengambil informasi profil di halaman data untuk profil tempat tanggal aktivitas terakhir terjadi pada atau sebelum tanggal dan waktu yang ditentukan dan nama pengguna untuk profil cocok dengan nama yang ditentukan.
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
Salah ProfileAuthenticationOption satu nilai, menentukan apakah anonim, diautentikasi, atau kedua jenis profil dikembalikan.
- usernameToMatch
- String
Nama pengguna yang akan dicari.
- userInactiveSinceDate
- DateTime
DateTime Yang mengidentifikasi profil pengguna mana yang dianggap tidak aktif. LastActivityDate Jika profil pengguna terjadi pada atau sebelum tanggal dan waktu ini, profil dianggap tidak aktif.
- pageIndex
- Int32
Indeks halaman hasil yang akan dikembalikan. pageIndex
berbasis nol.
- pageSize
- Int32
Ukuran halaman hasil yang akan dikembalikan.
- totalRecords
- Int32
Ketika metode ini kembali, berisi bilangan bulat yang mengidentifikasi jumlah total profil. Parameter ini diteruskan tanpa diinisialisasi.
Mengembalikan
Yang ProfileInfoCollection berisi informasi profil pengguna untuk profil tidak aktif di mana nama pengguna cocok dengan parameter yang disediakan usernameToMatch
.
Pengecualian
usernameToMatch
adalah null
.
usernameToMatch
adalah string kosong ("").
-atau-
pageIndex
kurang dari nol.
-atau-
pageSize
kurang dari 1.
-atau-
pageIndex
dikalikan dengan pageSize
lebih besar dari Int32.MaxValue.
Contoh
Contoh kode berikut memungkinkan pengguna untuk menyediakan usernameToMatch
nilai dan ProfileAuthenticationOption nilai dan mengambil informasi profil untuk profil yang cocok. Contoh ini memungkinkan pengguna untuk menentukan apakah akan mengembalikan profil yang tidak aktif secara eksklusif. Jika pengguna hanya menentukan profil yang tidak aktif, metode dipanggil FindInactiveProfilesByUserName ; jika tidak, FindProfilesByUserName metode dipanggil.
Penting
Contoh ini berisi kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan. Secara default, ASP.NET halaman Web memvalidasi bahwa input pengguna tidak menyertakan elemen skrip atau HTML. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.
<%@ 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>
Keterangan
Metode FindInactiveProfilesByUserName ini digunakan untuk mengambil informasi profil untuk profil pengguna yang tidak digunakan untuk aplikasi yang ditentukan oleh applicationName
atribut dalam file konfigurasi. Metode ini hanya akan mengambil profil yang nama penggunanya cocok dengan nilai parameter yang disediakan usernameToMatch
. authenticationOption
Gunakan parameter untuk menentukan apakah Anda hanya ingin profil anonim, hanya profil terautentikasi, atau semua profil yang akan dicari. Dari profil yang dicari, profil apa pun dikembalikan yang memiliki LastActivityDate yang terjadi pada atau sebelum nilai parameter yang ditentukan userInactiveSinceDate
.
Hasil yang dikembalikan oleh FindInactiveProfilesByUserName dibatasi oleh pageIndex
parameter dan pageSize
. Parameter pageSize
mengidentifikasi jumlah ProfileInfo maksimum objek yang akan dikembalikan dalam ProfileInfoCollection koleksi. Parameter pageIndex
mengidentifikasi halaman hasil mana yang akan dikembalikan; 0 mengidentifikasi halaman pertama. Parameter totalRecords
adalah out
parameter yang diatur ke jumlah total profil pengguna yang tidak aktif untuk yang dikonfigurasi applicationName
, berdasarkan authenticationOption
parameter dan userInactiveSinceDate
. Misalnya, jika ada 13 pengguna untuk yang dikonfigurasi applicationName
, dan pageIndex
nilainya adalah 1 dengan pageSize
5, yang ProfileInfoCollection dikembalikan akan berisi profil keenam hingga kesepuluh yang tidak aktif. Parameter totalRecords
akan diatur ke 13.
Perhatikan bahwa penyedia profil Anda mungkin mendukung karakter kartubebas dalam usernameToMatch
parameter . Misalnya, FindInactiveProfilesByUserName metode SqlProfileProvider kelas mendukung karakter kartubebas dalam usernameToMatch
parameter .
Metode ini FindInactiveProfilesByUserName memanggil FindInactiveProfilesByUserName metode penyedia profil default. Penyedia profil default ditentukan menggunakan defaultProvider
atribut elemen konfigurasi profil . Jika profil pengguna berisi properti yang dikelola oleh penyedia profil selain penyedia default, sumber data untuk penyedia profil lain tidak dicari. Untuk menemukan profil tidak aktif yang dikelola oleh penyedia profil selain penyedia default, dapatkan referensi ke penyedia profil menggunakan Providers properti dan panggil FindInactiveProfilesByUserName metode penyedia secara langsung.
Lihat juga
Berlaku untuk
FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime)
Mengambil informasi profil untuk semua profil tempat tanggal aktivitas terakhir terjadi pada atau sebelum tanggal dan waktu yang ditentukan dan nama pengguna untuk profil cocok dengan nama yang ditentukan.
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
Salah ProfileAuthenticationOption satu nilai enumerasi, menentukan apakah anonim, diautentikasi, atau kedua jenis profil dikembalikan.
- usernameToMatch
- String
Nama pengguna yang akan dicari.
- userInactiveSinceDate
- DateTime
DateTime Yang mengidentifikasi profil pengguna mana yang dianggap tidak aktif. LastActivityDate Jika profil pengguna terjadi pada atau sebelum tanggal dan waktu ini, profil dianggap tidak aktif.
Mengembalikan
Yang ProfileInfoCollection berisi informasi profil pengguna untuk profil tidak aktif di mana nama pengguna cocok dengan parameter yang disediakan usernameToMatch
.
Pengecualian
usernameToMatch
adalah null
.
usernameToMatch
adalah string kosong ("").
Contoh
Contoh kode berikut memungkinkan pengguna untuk menyediakan usernameToMatch
nilai dan ProfileAuthenticationOption nilai enumerasi dan mengambil informasi profil untuk profil yang cocok. Sampel memungkinkan pengguna untuk menentukan apakah hanya mengembalikan profil yang tidak aktif. Jika pengguna hanya menentukan profil yang tidak aktif, metode dipanggil FindInactiveProfilesByUserName ; jika tidak, FindProfilesByUserName metode dipanggil.
Penting
Contoh ini berisi kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan. Secara default, ASP.NET halaman Web memvalidasi bahwa input pengguna tidak menyertakan elemen skrip atau HTML. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.
<%@ 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>
Keterangan
Metode FindInactiveProfilesByUserName ini digunakan untuk mengambil informasi profil untuk semua profil pengguna yang tidak digunakan untuk aplikasi yang ditentukan oleh applicationName
atribut dalam file konfigurasi. Metode ini hanya akan mengambil profil yang nama pengguna profilnya cocok dengan nilai parameter yang disediakan usernameToMatch
. authenticationOption
Gunakan parameter untuk menentukan apakah Anda hanya ingin profil anonim, hanya profil terautentikasi, atau semua profil yang akan dicari. Dari profil yang dicari, profil apa pun dengan LastActivityDate yang terjadi pada atau sebelum nilai parameter yang ditentukan userInactiveSinceDate
dikembalikan.
Anda dapat mengambil informasi ini di halaman data menggunakan kelebihan beban untuk FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) metode yang mengambil parameter dan pageSize
tambahanpageIndex
.
Catatan
Penyedia profil Anda mungkin mendukung karakter kartubebas dalam usernameToMatch
parameter . Misalnya, FindInactiveProfilesByUserName metode SqlProfileProvider kelas mendukung karakter kartubebas dalam usernameToMatch
parameter .
Metode ini FindInactiveProfilesByUserName memanggil ProfileProvider.FindInactiveProfilesByUserName metode penyedia profil default. Penyedia profil default ditentukan menggunakan defaultProvider
atribut elemen konfigurasi profil . Jika profil pengguna berisi properti yang dikelola oleh penyedia profil selain penyedia default, sumber data untuk penyedia profil lain tidak dicari. Untuk menemukan profil tidak aktif yang dikelola oleh penyedia profil selain penyedia default, dapatkan referensi ke penyedia profil menggunakan Providers properti dan panggil FindInactiveProfilesByUserName metode penyedia secara langsung.
Lihat juga
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk