PersonalizationAdministration 類別

定義

實作 Web 組件個人化的管理 (Management) 和管理 (Administrative) 功能。 此類別無法獲得繼承。

public ref class PersonalizationAdministration abstract sealed
public static class PersonalizationAdministration
type PersonalizationAdministration = class
Public Class PersonalizationAdministration
繼承
PersonalizationAdministration

範例

下列程式碼範例示範如何在 類別中使用 PersonalizationAdministration 數種方法。 此範例包含參考名為 Persadmin.ascx 之網頁元件使用者控制項的 .aspx 頁面。 下列程式碼提供範例的 .aspx 檔案。

<%@ Page Language="C#" %>
<%@ Register TagPrefix="admin" TagName="administrator" Src="~/PersAdmin.ascx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
       <div>
        &nbsp;<asp:LoginName ID="LoginName1" runat="server" />
        &nbsp;
        <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" />
        &nbsp;&nbsp;&nbsp;&nbsp;<br />
        <br />
        </div>
        <asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
        <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
        <admin:administrator id="admincontrol" runat="server" />
        </ZoneTemplate>
        </asp:WebPartZone>
    </form>
</body>
</html>

此程式碼會提供 Persadmin.ascx 控制項。

重要

這個範例有一個可接受使用者輸入的文字方塊,這可能會造成安全性威脅。 根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。

<%@ Control Language="C#" ClassName="PersAdmin" %>

<script runat="server">
    WebPartManager _manager;
    string _provider;
    string _userscope;

  void Page_Init(object sender, EventArgs e)
  {
    Page.InitComplete += new EventHandler(InitComplete);
  }

    void InitComplete(object sender, System.EventArgs e)
    {
        _manager = WebPartManager.GetCurrentWebPartManager(Page);
        // <snippet4>
        _provider = PersonalizationAdministration.Provider.Name;
        TextBox1.Text = _provider;
        // </snippet4>
        // <snippet6>
        if (_manager.Personalization.Scope == PersonalizationScope.Shared)
        {
            TextBox2.Text = "Shared Scope";
        }
        else
            TextBox2.Text = "User Scope";
        // </snippet6>
           // <snippet5>
        Label4.Visible = false;
        TextBox4.Text = PersonalizationAdministration.GetCountOfState(PersonalizationScope.User).ToString();
            // </snippet5>
    }

// <snippet2>
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox3.Text != null)
        {
            // <snippet3>
            PersonalizationStateInfoCollection findresult;
          findresult = PersonalizationAdministration.FindUserState(null, TextBox3.Text);
          if (findresult.Count != 0)
          {
              Label4.Text = findresult.Count + "  user(s) found";
              Label4.Visible = true;
          }
              // </snippet3>
          else
          {
              Label4.Text = "No users found.";
              Label4.Visible = true;
          }
        }
      else
      {
          Label4.Text = "You must enter a user name to find.";
      }

    }
    // </snippet2>

</script>
<asp:Label ID="Label1" runat="server" Text="Personalization Provider" Width="162px"
  AssociatedControlID="TextBox1" />
<br />
<asp:TextBox ID="TextBox1" runat="server" Width="268px"></asp:TextBox>
<br />
<br />
<asp:Label ID="Label2" runat="server" Text="Scope" AssociatedControlID="TextBox2" />
<br />
<asp:TextBox ID="TextBox2" runat="server" Width="90px"></asp:TextBox>
<br />
<br />
<asp:Label ID="Label3" runat="server" Text="User to Find" Width="135px"
  AssociatedControlID="TextBox3" />
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
&nbsp;
<asp:Label ID="Label4" runat="server" Width="77px" ForeColor="Red" />
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Find User" OnClick="Button1_Click" />&nbsp;&nbsp;&nbsp;
<br />
<br />
<asp:Label ID="Label5" runat="server" Text="Personalization Statistics" Width="204px" />
<br />
<br />
<asp:Label ID="Label6" runat="server" Text="Number of User Personalization States" Width="246px"
  AssociatedControlID="TextBox4" Height="21px" />
<br />
<asp:TextBox ID="TextBox4" runat="server" Width="63px"></asp:TextBox>
<br />
<br />
<br />
<br />

備註

這個類別提供數個靜態方法和屬性,可公開 Web 元件個人化的管理和管理功能。 這些方法適用于 Web 元件控制項的 WebPartManager 控制項中設定的預設個人化提供者。 如果您需要管理數個作為個人化提供者的資料存放區,您應該直接在個別個人化提供者類別上使用 方法。 請注意,控制項的已設定個人化提供者 WebPartManager 集合可從靜態屬性取得 Providers

請務必注意,如果您的 Web 應用程式未在預設信任層級或更高層級 Medium 執行, (您可以使用 元素) 在Web.config檔案 <trust level="" /> 中設定自訂信任層級,則個人化將會失敗。 PersonalizationAdministrationSqlPersonalizationProvider 類別會在初始化時檢查 的信任層級 Low 。 如果您將應用程式設定為在 的信任層級 Low 執行,並使用預設 SqlPersonalizationProvider 提供者來管理應用程式的個人化資料,則第一次應用程式嘗試存取個人化資料時,將會失敗,因為信任中 Low 執行的 ASP.NET 背景工作進程沒有呼叫命名空間中 System.Data.SqlClient 各種類別所需的許可權。

屬性

ApplicationName

取得或設定提供者指定的應用程式名稱。

Provider

傳回預設個人化提供者的執行個體。

Providers

傳回使用名稱進行索引的個人化提供者集合。

方法

FindInactiveUserState(String, String, DateTime)

根據指定的參數,為非作用中使用者傳回每一使用者個人化狀態資訊的集合。

FindInactiveUserState(String, String, DateTime, Int32, Int32, Int32)

根據指定的參數,為非作用中使用者傳回每一使用者個人化狀態資訊的集合。

FindSharedState(String)

根據指定的路徑傳回共用個人化狀態資訊的集合。

FindSharedState(String, Int32, Int32, Int32)

根據指定的參數傳回共用個人化狀態資訊的集合。

FindUserState(String, String)

根據使用者名稱和網頁路徑傳回每一使用者個人化狀態資訊的集合。

FindUserState(String, String, Int32, Int32, Int32)

根據指定的參數傳回每一使用者個人化狀態資訊的集合。

GetAllInactiveUserState(DateTime)

根據指定的日期,傳回與非作用中使用者相關聯之所有每一使用者個人化狀態資訊的集合。

GetAllInactiveUserState(DateTime, Int32, Int32, Int32)

根據指定的參數,傳回與非作用中使用者相關聯之所有每一使用者個人化狀態資訊的子集。

GetAllState(PersonalizationScope)

根據所要求的個人化範圍,傳回基礎資料存放區之所有個人化狀態資訊的集合。

GetAllState(PersonalizationScope, Int32, Int32, Int32)

根據指定的參數,傳回基礎資料存放區之所有個人化狀態資訊的子集。

GetCountOfInactiveUserState(DateTime)

根據指定的參數,為非作用中使用者傳回基礎資料存放區中每一使用者個人化項目的計數。

GetCountOfInactiveUserState(String, DateTime)

根據指定的參數,為非作用中使用者傳回基礎資料存放區中每一使用者個人化項目的計數。

GetCountOfState(PersonalizationScope)

傳回基礎資料存放區中的個人化狀態項目計數,這些項目針對指定範圍存在。

GetCountOfState(PersonalizationScope, String)

傳回基礎資料存放區中的個人化狀態項目計數,這些項目針對指定參數存在。

GetCountOfUserState(String)

傳回基礎資料存放區中的個人化狀態項目計數,這些項目針對指定使用者存在。

ResetAllState(PersonalizationScope)

藉由刪除與指定範圍相關聯的所有資料列,重設基礎資料存放區中的所有個人化資料。

ResetInactiveUserState(DateTime)

根據指定的參數,重設基礎資料存放區中所有的每一使用者個人化狀態資訊。

ResetInactiveUserState(String, DateTime)

根據指定的參數,為非作用中使用者重設基礎資料存放區中所有的每一使用者狀態資訊。

ResetSharedState(String)

針對指定的路徑重設基礎資料存放區中的共用狀態。

ResetSharedState(String[])

針對指定的路徑重設基礎資料存放區中的共用狀態。

ResetState(PersonalizationStateInfoCollection)

根據集合中包含的項目來重設基礎資料存放區中的個人化資料。

ResetUserState(String)

針對指定的路徑重設基礎資料存放區中所有的每一使用者狀態。

ResetUserState(String, String)

針對指定的使用者名稱和路徑組合,重設基礎資料存放區中的每一使用者狀態。

ResetUserState(String, String[])

針對指定的網頁和使用者重設基礎資料存放區中的每一使用者狀態。

ResetUserState(String[])

針對指定的路徑重設基礎資料存放區中所有的每一使用者狀態。

適用於

另請參閱