ProfileManager.DeleteInactiveProfiles メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > ProfileManager.DeleteInactiveProfiles メソッドの意味・解説 

ProfileManager.DeleteInactiveProfiles メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

最後のアクティビティの日付が指定した日時以前であるユーザー プロファイル データを削除します。

名前空間: System.Web.Profile
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Shared Function DeleteInactiveProfiles
 ( _
    authenticationOption As ProfileAuthenticationOption, _
    userInactiveSinceDate As DateTime _
) As Integer
Dim authenticationOption As ProfileAuthenticationOption
Dim userInactiveSinceDate As DateTime
Dim returnValue As Integer

returnValue = ProfileManager.DeleteInactiveProfiles(authenticationOption, userInactiveSinceDate)
public static int DeleteInactiveProfiles
 (
    ProfileAuthenticationOption authenticationOption,
    DateTime userInactiveSinceDate
)
public:
static int DeleteInactiveProfiles (
    ProfileAuthenticationOption authenticationOption, 
    DateTime userInactiveSinceDate
)
public static int DeleteInactiveProfiles
 (
    ProfileAuthenticationOption authenticationOption, 
    DateTime userInactiveSinceDate
)
public static function DeleteInactiveProfiles
 (
    authenticationOption : ProfileAuthenticationOption, 
    userInactiveSinceDate : DateTime
) : int

パラメータ

authenticationOption

プロファイルの種類 (匿名、認証、またはその両方) を指定する ProfileAuthenticationOption 列挙値の 1 つが削除されます。

userInactiveSinceDate

アクティブでないと見なすユーザー プロファイルを識別する DateTime。ユーザー プロファイルの LastActivityDate が、この日時と同じまたはそれ以前の場合、このプロファイルはアクティブでないと見なされます。

戻り値
データ ソースから削除されたプロファイルの数。

解説解説

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

DeleteInactiveProfiles メソッドは、既定のプロファイル プロバイダの DeleteInactiveProfiles メソッドを呼び出します。既定のプロファイル プロバイダは、profile 構成要素の defaultProvider 属性を使用して指定します。ユーザー プロファイルに、既定のプロバイダ以外のプロファイル プロバイダによって管理されるプロパティが存在する場合、他のデータ ソース内のプロファイル情報は削除されません。既定プロバイダ以外のプロファイル プロバイダによって管理されるアクティブでないプロファイルを削除するには、Providers プロパティで目的のプロファイルへの参照を取得し、プロバイダの DeleteInactiveProfiles メソッドを直接呼び出します。

使用例使用例

アクティブでないプロファイルを管理する ASP.NET ページを表示するコードの例を次に示します。指定した日数の間使用されていないためアクティブでないと見なされるプロファイルをすべて削除するためのボタンが用意されています。

<%@ 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 inactiveDays As Integer
 = 120
Dim deletedProfiles As Integer
 = 0

Public Sub Page_Load()

  DeletedMessage.Text = ""

  authOption = GetAuthenticationOption()

  If Not IsPostBack Then
  
    InactiveDaysTextBox.Text = inactiveDays.ToString()

    GetProfiles()
  Else
    inactiveDays = Convert.ToInt32(InactiveDaysTextBox.Text)
  End If
End Sub

Public Sub ProfileGrid_Delete(sender As
 Object, args As GridViewCommandEventArgs)
  ' Retrieve user name selected.

  Dim index As Integer =
 Convert.ToInt32(args.CommandArgument)

  Dim username As String
 = ProfileGrid.Rows(index).Cells(0).Text

  ProfileManager.DeleteProfiles(New string()
 {username})

  DeletedMessage.Text = "1 profile deleted."

  ' Refresh profile list.

  currentPage = Convert.ToInt32(CurrentPageLabel.Text)
  GetProfiles()
End Sub


Private Sub GetProfiles()
  ProfileGrid.DataSource = ProfileManager.GetAllInactiveProfiles(authOption, _
                               DateTime.Now.Subtract(New TimeSpan(inactiveDays,
 0, 0, 0)), _
                               currentPage - 1, pageSize, totalProfiles)

  TotalProfilesLabel.Text = totalProfiles.ToString()

  totalPages = ((totalProfiles - 1) \ pageSize) + 1

  ' Ensure that we do not navigate past the last page of Profiles.

  If currentPage > totalPages Then  
    currentPage = totalPages
    GetProfiles()
    Return
  End If

  ProfileGrid.DataBind()
  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
  GetProfiles()
End Sub

Public Sub PreviousButton_OnClick(sender As
 Object, args As EventArgs)
  currentPage = Convert.ToInt32(CurrentPageLabel.Text)
  currentPage -= 1
  GetProfiles()
End Sub

Public Sub ModifyInactiveDaysButton_OnClick(sender
 As Object, args As EventArgs)
  GetProfiles()
End Sub

Public Sub AuthenticationOptionListBox_OnSelectedIndexChanged(sender
 As Object, args As EventArgs)
  authOption = GetAuthenticationOption()
  GetProfiles()
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

Public Sub DeleteAllInactiveButton_OnClick(sender
 As Object, args As EventArgs)
  deletedProfiles = ProfileManager.DeleteInactiveProfiles(authOption, _
                        DateTime.Now.Subtract(new TimeSpan(inactiveDays,
 0, 0 ,0)))
  DeletedMessage.Text = deletedProfiles.ToString() & " profiles
 deleted."
  GetProfiles()
End SUb

</script>
<html>
<head>
<title>Sample: Find Profiles</title>
</head>
<body>

<form runat="server">
  <h3>Profile List</h3>

  <table border=0 cellpadding=3 cellspacing=3>
    <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>
    </tr>
    <tr>
      <td valign="top" width="160">
        Number of Days for Profile to
 be considered "inactive"</td>
      <td valign="top" width="200">
        <asp:TextBox id="InactiveDaysTextBox" runat="Server"
 MaxLength="3" Columns="3"
 />
        <asp:Button id="ModifyInactiveDaysButton"
 runat="server" Text="Refresh
 Results" 
           OnClick="ModifyInactiveDaysButton_OnClick"
 /><BR>
        <asp:Button id="DeleteAllInactiveButton"
 runat="Server"
           Text="Delete All Inactive Profiles" OnClick="DeleteAllInactiveButton_OnClick"
 />
      </td>
      <td valign="top">
        <asp:RequiredFieldValidator id="InactiveDaysRequiredValidator"
 runat="server"
           ControlToValidate="InactiveDaysTextBox"
 ForeColor="red"
           Display="Static" ErrorMessage="Required"
 />
        <asp:RegularExpressionValidator id="InactiveDaysValidator"
 runat="server"
           ControlToValidate="InactiveDaysTextBox"
 ForeColor="red"
           Display="Static" ValidationExpression="[0-9]*"
 
           ErrorMessage="Inactive Days must be a whole number
 less than 1000 (e.g. 30, 120)" />
     </td>
    </tr>
    <tr>
      <td><asp:Label id="DeletedMessage"
 runat="server" /></td>
      <td><asp:Label id="TotalProfilesLabel"
 runat="server" /> inactive profiles found.</td>
    </tr>
  </table>

    <asp:Panel id="NavigationPanel" Visible="False"
 runat="server">
    <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:GridView id="ProfileGrid" runat="server"
 AutoGenerateColumns="False"
                OnRowCommand="ProfileGrid_Delete"
                CellPadding="2" CellSpacing="1"
 Gridlines="None">
    <HeaderStyle BackColor="darkblue" ForeColor="white"
 />
    <Columns>
      <asp:BoundField runat="server" HeaderText="User
 Name" DataField="Username" />
      <asp:BoundField runat="server" HeaderText="Is
 Anonymous" DataField="IsAnonymous" />
      <asp:BoundField runat="server" HeaderText="Last
 Updated" DataField="LastUpdatedDate"
 />
      <asp:BoundField runat="server" HeaderText="Last
 Activity" DataField="LastActivityDate"
 />
      <asp:ButtonField runat="server" HeaderText="Action"
 Text="Delete" ButtonType="Link"
 />
    </Columns>
  </asp:GridView>

</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;
int inactiveDays = 120;
int deletedProfiles = 0;

public void Page_Load()
{
  DeletedMessage.Text = "";

  authOption = GetAuthenticationOption();

  if (!IsPostBack)
  {
    InactiveDaysTextBox.Text = inactiveDays.ToString();

    GetProfiles();
  }
  else
  {
    inactiveDays = Convert.ToInt32(InactiveDaysTextBox.Text);
  }
}

public void ProfileGrid_Delete(object sender,
 GridViewCommandEventArgs args)
{
  // Retrieve user name selected.

  int index = Convert.ToInt32(args.CommandArgument);

  string username = ProfileGrid.Rows[index].Cells[0].Text;

  ProfileManager.DeleteProfiles(new string[]
 {username});

  DeletedMessage.Text = "1 profile deleted.";

  // Refresh profile list.

  currentPage = Convert.ToInt32(CurrentPageLabel.Text);
  GetProfiles();
}


private void GetProfiles()
{
  ProfileGrid.DataSource = ProfileManager.GetAllInactiveProfiles(authOption,
                               DateTime.Now.Subtract(new TimeSpan(inactiveDays,
 0, 0, 0)),
                               currentPage - 1, pageSize, out totalProfiles);

  TotalProfilesLabel.Text = totalProfiles.ToString();

  totalPages = ((totalProfiles - 1) / pageSize) + 1;

  // Ensure that we do not navigate past the last page of Profiles.

  if (currentPage > totalPages)
  {
    currentPage = totalPages;
    GetProfiles();
    return;
  }

  ProfileGrid.DataBind();
  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++;
  GetProfiles();
}

public void PreviousButton_OnClick(object sender,
 EventArgs args)
{
  currentPage = Convert.ToInt32(CurrentPageLabel.Text);
  currentPage--;
  GetProfiles();
}

public void ModifyInactiveDaysButton_OnClick(object
 sender, EventArgs args)
{
  GetProfiles();
}

public void AuthenticationOptionListBox_OnSelectedIndexChanged(object
 sender, EventArgs args)
{
  authOption = GetAuthenticationOption();
  GetProfiles();
}

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;
}

public void DeleteAllInactiveButton_OnClick(object
 sender, EventArgs args)
{
  deletedProfiles = ProfileManager.DeleteInactiveProfiles(authOption, 
                        DateTime.Now.Subtract(new TimeSpan(inactiveDays,
 0, 0 ,0)));
  DeletedMessage.Text = deletedProfiles.ToString() + " profiles deleted.";
  GetProfiles();
}

</script>
<html>
<head>
<title>Sample: Find Profiles</title>
</head>
<body>

<form runat="server">
  <h3>Profile List</h3>

  <table border=0 cellpadding=3 cellspacing=3>
    <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>
    </tr>
    <tr>
      <td valign="top" width="160">
        Number of Days for Profile to be considered "inactive"</td>
      <td valign="top" width="200">
        <asp:TextBox id="InactiveDaysTextBox" runat="Server"
 MaxLength="3" Columns="3" />
        <asp:Button id="ModifyInactiveDaysButton" runat="server"
 Text="Refresh Results" 
           OnClick="ModifyInactiveDaysButton_OnClick" /><BR>
        <asp:Button id="DeleteAllInactiveButton" runat="Server"
           Text="Delete All Inactive Profiles" OnClick="DeleteAllInactiveButton_OnClick"
 />
      </td>
      <td valign="top">
        <asp:RequiredFieldValidator id="InactiveDaysRequiredValidator"
 runat="server"
           ControlToValidate="InactiveDaysTextBox" ForeColor="red"
           Display="Static" ErrorMessage="Required" />
        <asp:RegularExpressionValidator id="InactiveDaysValidator" runat="server"
           ControlToValidate="InactiveDaysTextBox" ForeColor="red"
           Display="Static" ValidationExpression="[0-9]*" 
           ErrorMessage="Inactive Days must be a whole number less than 1000
 (e.g. 30, 120)" />
     </td>
    </tr>
    <tr>
      <td><asp:Label id="DeletedMessage" runat="server"
 /></td>
      <td><asp:Label id="TotalProfilesLabel" runat="server"
 /> inactive profiles found.</td>
    </tr>
  </table>

    <asp:Panel id="NavigationPanel" Visible="false"
 runat="server">
    <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:GridView id="ProfileGrid" runat="server" AutoGenerateColumns="false"
                OnRowCommand="ProfileGrid_Delete"
                CellPadding="2" CellSpacing="1" Gridlines="None">
    <HeaderStyle BackColor="darkblue" ForeColor="white" />
    <Columns>
      <asp:BoundField runat="server" HeaderText="User Name"
 DataField="Username" />
      <asp:BoundField runat="server" HeaderText="Is Anonymous"
 DataField="IsAnonymous" />
      <asp:BoundField runat="server" HeaderText="Last Updated"
 DataField="LastUpdatedDate" />
      <asp:BoundField runat="server" HeaderText="Last Activity"
 DataField="LastActivityDate" />
      <asp:ButtonField runat="server" HeaderText="Action"
 Text="Delete" ButtonType="Link" />
    </Columns>
  </asp:GridView>

</form>

</body>
</html>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ProfileManager.DeleteInactiveProfiles メソッド」の関連用語

ProfileManager.DeleteInactiveProfiles メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ProfileManager.DeleteInactiveProfiles メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS