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

ProfileInfoCollection クラス

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

ProfileInfo オブジェクトコレクション

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

<SerializableAttribute> _
Public NotInheritable Class
 ProfileInfoCollection
    Implements ICollection, IEnumerable
Dim instance As ProfileInfoCollection
[SerializableAttribute] 
public sealed class ProfileInfoCollection :
 ICollection, IEnumerable
[SerializableAttribute] 
public ref class ProfileInfoCollection sealed
 : ICollection, IEnumerable
/** @attribute SerializableAttribute() */ 
public final class ProfileInfoCollection implements
 ICollection, IEnumerable
SerializableAttribute 
public final class ProfileInfoCollection implements
 ICollection, IEnumerable
解説解説

ProfileInfoCollection オブジェクトには、データ ソースからのユーザー プロファイルを表す ProfileInfo オブジェクト格納されています。ProfileInfoCollection は、ProfileProvider の GetAllProfiles、GetAllInactiveProfiles、FindProfilesByUserName、および FindInactiveProfilesByUserName の各メソッドによって返されます。

ProfileInfoCollection を DeleteProfiles メソッドに渡すと、プロファイル情報プロパティデータ ソースから削除できます

使用例使用例

FindProfilesByUserName および FindInactiveProfilesByUserName の各メソッド使用しユーザープロファイル検索できるようにするコード例次に示しますユーザーは、find メソッドから返されProfileInfoCollection を DeleteProfiles メソッドに渡すことで、関連付けられたプロファイルデータ ソースから削除できます

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

Public Sub Page_Load()

  DeletedMessage.Text = ""

  provider = CType(Profile.Providers("SqlProvider"),
 SqlProfileProvider)

  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

  provider.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 = provider.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 = provider.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;

SqlProfileProvider provider;
ProfileAuthenticationOption authOption;
int inactiveDays = 120;
int deletedProfiles = 0;

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

  provider = (SqlProfileProvider)Profile.Providers["SqlProvider"];

  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;

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

  DeletedMessage.Text = "1 profile deleted.";

  // Refresh profile list.

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


private void GetProfiles()
{
  ProfileGrid.DataSource = provider.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 = provider.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>
継承階層継承階層
System.Object
  System.Web.Profile.ProfileInfoCollection
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ProfileInfoCollection コンストラクタ

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

空の ProfileInfoCollection を新規作成します

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

Dim instance As New ProfileInfoCollection
public ProfileInfoCollection ()
public:
ProfileInfoCollection ()
public ProfileInfoCollection ()
public function ProfileInfoCollection ()
解説解説

ProfileInfoCollectionプロファイル プロバイダ実装側によって構築され、ProfileProvider 抽象クラスの GetAllProfiles、GetAllInactiveProfiles、FindProfilesByUserName、および FindInactiveProfilesByUserName の各メソッドによって返されます。

使用例使用例
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ProfileInfoCollection プロパティ


ProfileInfoCollection メソッド


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

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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

その他の技術情報

プロファイル プロバイダ実装
ASP.NET プロファイル プロパティ

ProfileInfoCollection メンバ

ProfileInfo オブジェクトコレクション

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


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ProfileInfoCollection 空の ProfileInfoCollection を新規作成します
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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

その他の技術情報

プロファイル プロバイダ実装
ASP.NET プロファイル プロパティ



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

辞書ショートカット

すべての辞書の索引

「ProfileInfoCollection」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS