ProfileManagerとは? わかりやすく解説

ProfileManager クラス

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

ユーザー プロファイルデータ設定値管理します

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

解説解説

ASP.NET プロファイルは、データベースなどのデータ ソース内にあるユーザー設定値格納取得使用されます。ユーザー プロファイルには、現在の HttpContext の Profile プロパティ使用してアクセスます。プロファイル情報プロパティ値は、プロファイル プロバイダ使用して管理されます。

ProfileManager クラスは、プロファイル設定管理ユーザー プロファイル検索使用しなくなったユーザー プロファイル削除使用されます。ProfileManager クラスには静的メソッドプロパティがあり、それらには ProfileManager クラスへの参照によってアプリケーション コードからアクセスできます例については、このトピックの「使用例」を参照してくださいまた、ProfileManager クラスメンバに関するトピックにも別の例あります

既定では、すべての ASP.NET アプリケーションユーザー プロファイル無効にされています。ユーザー プロファイル有効にするには、profile 構成要素enabled 属性true設定します次に例を示します

<configuration>
  <system.web>
    <profile enabled="true" />
  </system.web>
</configuration>

ユーザー プロファイル詳細については、「ASP.NET プロファイル プロパティ」を参照してください

プロファイル プロバイダは、ユーザー プロファイルへのプロパティ格納、およびユーザープロファイル内のプロパティ取得使用されます。.NET Framework には、SQL Server データベースユーザー プロファイルプロパティ格納する SqlProfileProvider クラス含まれます。マシン構成内には、AspNetSqlProvider という名前の SqlProfileProvider インスタンス既定プロファイル プロバイダとして指定されています。この AspNetSqlProvider インスタンスは、ローカル Web サーバー上の SQL Server データベース接続します。他の SQL Server接続する SqlProfileProvider を、providers 構成要素と、profile 構成要素defaultProvider 属性使用して既定プロファイル プロバイダとして指定できます次に例を示します

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString=
      "Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;"
 />
  </connectionStrings>
  <system.web>
    <profile defaultProvider="SqlProvider">
      <providers>
        <clear />
        <add name="SqlProvider"
          type="System.Web.Profile.SqlProfileProvider"
          connectionStringName="SqlServices"
          applicationName="MyApplication" />
      </providers>
    </profile>
  </system.web>
</configuration>
使用例使用例

ProfileManager クラス使用してアクティブでないプロファイル管理する 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>
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.Web.Profile.ProfileManager
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ProfileManager プロパティ


ProfileManager メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド DeleteInactiveProfiles 最後アクティビティ日付指定した日時以前であるユーザー プロファイル データ削除します
パブリック メソッド DeleteProfile 指定したユーザー名プロファイルデータ ソースから削除します
パブリック メソッド DeleteProfiles オーバーロードされます指定されプロファイル リスト該当するプロファイルプロパティ情報データ ソースから削除します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド FindInactiveProfilesByUserName オーバーロードされます最後アクティビティ日付指定した日付またはそれ以前であり、プロファイルユーザー名指定した名前と一致するプロファイルプロファイル情報取得します
パブリック メソッド FindProfilesByUserName オーバーロードされます指定された名前にユーザー名一致するプロファイルプロファイル情報取得します
パブリック メソッド GetAllInactiveProfiles オーバーロードされます最後アクティビティ日付指定した日時またはそれ以前であるプロファイルの、ユーザー プロファイル データ取得します
パブリック メソッド GetAllProfiles オーバーロードされますデータ ソース内にあるプロファイルユーザー プロファイル データ取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetNumberOfInactiveProfiles 最後アクティビティ日付指定され日付またはそれ以前であるプロファイルの数を取得します
パブリック メソッド GetNumberOfProfiles データ ソース内のプロファイルの数を取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ProfileManager クラス
System.Web.Profile 名前空間

その他の技術情報

ASP.NET プロファイル プロパティ

ProfileManager メンバ

ユーザー プロファイルデータ設定値管理します

ProfileManager データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド DeleteInactiveProfiles 最後アクティビティ日付指定した日時以前であるユーザー プロファイル データ削除します
パブリック メソッド DeleteProfile 指定したユーザー名プロファイルデータ ソースから削除します
パブリック メソッド DeleteProfiles オーバーロードされます指定されプロファイル リスト該当するプロファイルプロパティ情報データ ソースから削除します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド FindInactiveProfilesByUserName オーバーロードされます最後アクティビティ日付指定した日付またはそれ以前であり、プロファイルユーザー名指定した名前と一致するプロファイルプロファイル情報取得します
パブリック メソッド FindProfilesByUserName オーバーロードされます指定された名前にユーザー名一致するプロファイルプロファイル情報取得します
パブリック メソッド GetAllInactiveProfiles オーバーロードされます最後アクティビティ日付指定した日時またはそれ以前であるプロファイルの、ユーザー プロファイル データ取得します
パブリック メソッド GetAllProfiles オーバーロードされますデータ ソース内にあるプロファイルユーザー プロファイル データ取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetNumberOfInactiveProfiles 最後アクティビティ日付指定され日付またはそれ以前であるプロファイルの数を取得します
パブリック メソッド GetNumberOfProfiles データ ソース内のプロファイルの数を取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ProfileManager クラス
System.Web.Profile 名前空間

その他の技術情報

ASP.NET プロファイル プロパティ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ProfileManager」の関連用語

ProfileManagerのお隣キーワード
検索ランキング

   

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



ProfileManagerのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS