SqlProfileProvider.GetNumberOfInactiveProfiles メソッド
アセンブリ: System.Web (system.web.dll 内)

Public Overrides Function GetNumberOfInactiveProfiles ( _ authenticationOption As ProfileAuthenticationOption, _ userInactiveSinceDate As DateTime _ ) As Integer
Dim instance As SqlProfileProvider Dim authenticationOption As ProfileAuthenticationOption Dim userInactiveSinceDate As DateTime Dim returnValue As Integer returnValue = instance.GetNumberOfInactiveProfiles(authenticationOption, userInactiveSinceDate)
public override int GetNumberOfInactiveProfiles ( ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate )
public: virtual int GetNumberOfInactiveProfiles ( ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate ) override
public int GetNumberOfInactiveProfiles ( ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate )
public override function GetNumberOfInactiveProfiles ( authenticationOption : ProfileAuthenticationOption, userInactiveSinceDate : DateTime ) : int
- userInactiveSinceDate
アクティブでないと見なすユーザー プロファイルを識別する DateTime。ユーザー プロファイルの LastActivityDate が、この日時と同じまたはそれ以前の場合、このプロファイルはアクティブでないと見なされます。
データ ソース内の、最後のアクティビティの日付が指定した日時以前であるプロファイルの数。

GetNumberOfInactiveProfiles メソッドは、構成ファイル内の applicationName 属性で指定されたアプリケーションの、使用されていないユーザー プロファイルの総数をデータ ソースから取得するために使用されます。検索対象のプロファイル (匿名のプロファイルのみ、認証済みプロファイルのみ、またはすべてのプロファイル) を指定するには、authenticationOption パラメータを使用します。検索されたプロファイルのうち、指定された userInactiveSinceDate パラメータ値またはそれ以前の LastActivityDate を持つすべてのプロファイルがカウントされます。

検索条件に基づいて、ユーザーがアクティブおよびアクティブでないプロファイル情報の表示と削除を実行できるようにするコード例を次に示します。アクティブでないプロファイルの数は、GetNumberOfInactiveProfiles メソッドの実行結果を使用して表示されます。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Profile" %> <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 provider As SqlProfileProvider Dim inactiveDays As Integer = 90 Public Sub Page_Load() InactiveDaysLabel.Text = inactiveDays.ToString() authOption = GetAuthenticationOption() provider = CType(Profile.Providers("SqlProvider"), SqlProfileProvider) InactiveProfilesLabel.Text = provider.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 = provider.FindInactiveProfilesByUserName(authOption, _ UserNameTextBox.Text, _ DateTime.Now.Subtract(New TimeSpan(inactiveDays, 0, 0, 0)), _ currentPage - 1, pageSize, totalProfiles) Else profiles = provider.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) provider.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> <head> <title>Sample Find Profiles</title> </head> <body> <form 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 width=100>Page <asp:Label id="CurrentPageLabel" runat="server" /> of <asp:Label id="TotalPagesLabel" runat="server" /></td> <td width=60><asp:LinkButton id="PreviousButton" Text="< Prev" OnClick="PreviousButton_OnClick" runat="server" /></td> <td 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="C#" %> <%@ Import Namespace="System.Web.Profile" %> <script runat="server"> int pageSize = 5; int totalProfiles; int totalPages; int currentPage = 1; ProfileAuthenticationOption authOption; SqlProfileProvider provider; int inactiveDays = 90; public void Page_Load() { InactiveDaysLabel.Text = inactiveDays.ToString(); authOption = GetAuthenticationOption(); provider = (SqlProfileProvider)Profile.Providers["SqlProvider"]; InactiveProfilesLabel.Text = provider.GetNumberOfInactiveProfiles(authOption, DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))).ToString(); DeletedMessage.Text = ""; } private ProfileInfoCollection GetProfiles() { ProfileInfoCollection profiles; if (ShowInactiveCheckBox.Checked) { profiles = provider.FindInactiveProfilesByUserName(authOption, UserNameTextBox.Text, DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)), currentPage - 1, pageSize, out totalProfiles); } else { profiles = provider.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) { provider.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> <head> <title>Sample: Find Profiles</title> </head> <body> <form 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 width=100>Page <asp:Label id="CurrentPageLabel" runat="server" /> of <asp:Label id="TotalPagesLabel" runat="server" /></td> <td width=60><asp:LinkButton id="PreviousButton" Text="< Prev" OnClick="PreviousButton_OnClick" runat="server" /></td> <td 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>

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からSqlProfileProvider.GetNumberOfInactiveProfiles メソッドを検索する場合は、下記のリンクをクリックしてください。

- SqlProfileProvider.GetNumberOfInactiveProfiles メソッドのページへのリンク