語言

PersonalizationAdministration 類別

定義

實作網頁部分個人化的管理與管理功能。 此類別無法獲得繼承。

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

範例

以下程式碼範例示範如何在類別中使用多種方法 PersonalizationAdministration 。 此範例包含一個.aspx頁面,參考一個名為 Persadmin.ascx的 Web Parts 使用者控制項。 以下程式碼提供了範例的.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 。

Important

此範例中有一個文字框可接受使用者輸入,這可能構成安全威脅。 預設情況下,ASP.NET 網頁會驗證使用者輸入中不包含腳本或 HTML 元素。 欲了解更多資訊,請參閱 腳本漏洞概述。

<%@ 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 Parts 控制項中預設的 WebPartManager 個人化提供者。 如果你需要管理多個作為個人化服務的資料庫,你應該直接在個別個人化服務類別中使用這些方法。 請注意,控制項的個人化提供者 WebPartManager 配置集合可從 Providers 靜態屬性中取得。

請注意,若你的網頁應用程式未以預設信任等級 Medium 或更高運行(你可以利用元素 <trust level="" /> 在 Web.config 檔案中設定自訂信任等級),個人化將失敗。 和PersonalizationAdministration類別SqlPersonalizationProvider都會檢查初始化時的信任等級Low。 如果你將應用程式設定為信任層級為 Low,並使用預設的 SqlPersonalizationProvider 提供者來管理應用程式的個人化資料,應用程式第一次嘗試存取個人化資料時,會失敗,因為在 Low 信任中運行的 ASP.NET 工作程序沒有權限呼叫 System.Data.SqlClient 命名空間中的各個類別。

屬性

名稱 Description
ApplicationName

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

Provider

回傳預設個人化提供者的實例。

Providers

回傳一組以名稱索引的個人化服務提供者集合。

方法

名稱 Description
FindInactiveUserState(String, String, DateTime, Int32, Int32, Int32)

根據指定的參數,回傳一組每位使用者的個人化狀態資訊,針對非活躍使用者。

FindInactiveUserState(String, String, DateTime)

根據指定的參數,回傳一組每位使用者的個人化狀態資訊,針對非活躍使用者。

FindSharedState(String, Int32, Int32, Int32)

回傳一組基於指定參數的共享個人化狀態資訊。

FindSharedState(String)

回傳一組基於指定路徑的共享個人化狀態資訊。

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

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

FindUserState(String, String)

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

GetAllInactiveUserState(DateTime, Int32, Int32, Int32)

根據指定的參數,回傳所有與非活躍使用者相關的個別個人化狀態資訊子集。

GetAllInactiveUserState(DateTime)

回傳根據指定日期與非活躍使用者相關的所有個別使用者個人化狀態資訊集合。

GetAllState(PersonalizationScope, Int32, Int32, Int32)

根據指定的參數,從底層資料儲存庫回傳所有個人化狀態資訊的子集。

GetAllState(PersonalizationScope)

回傳來自底層資料庫中所有個人化狀態資訊的集合,針對所請求的個人化範圍。

GetCountOfInactiveUserState(DateTime)

根據指定的參數,回傳底層資料儲存中非活躍使用者的個別個人化項目數量。

GetCountOfInactiveUserState(String, DateTime)

根據指定的參數,回傳底層資料庫中非活躍使用者的每用戶個人化項目數量。

GetCountOfState(PersonalizationScope, String)

回傳底層資料庫中針對指定參數存在的個人化狀態項目數量。

GetCountOfState(PersonalizationScope)

回傳底層資料庫中指定範圍內存在的個人化狀態項目數量。

GetCountOfUserState(String)

回傳底層資料庫中為指定使用者存在的個人化狀態項目數量。

ResetAllState(PersonalizationScope)

透過刪除所有與指定範圍相關的列,重置底層資料儲存中的所有個人化資料。

ResetInactiveUserState(DateTime)

根據指定的參數,重置底層資料庫中所有每位使用者的個人化狀態資訊。

ResetInactiveUserState(String, DateTime)

根據指定的參數,重置底層資料儲存中非活躍使用者的所有每位使用者狀態資訊。

ResetSharedState(String)

重設底層資料儲存中指定路徑的共享狀態。

ResetSharedState(String[])

重置底層資料儲存中指定路徑的共享狀態。

ResetState(PersonalizationStateInfoCollection)

根據集合中包含的項目,重置底層資料庫中的個人化資料。

ResetUserState(String, String)

在底層資料儲存中,針對指定的使用者名稱與路徑組合,重置每位使用者的狀態。

ResetUserState(String, String[])

在底層資料儲存中,針對頁面及指定的使用者,重置每位使用者的狀態。

ResetUserState(String)

重置底層資料儲存中指定路徑的所有每位使用者狀態。

ResetUserState(String[])

重置底層資料儲存中指定路徑的所有用戶狀態。

適用於

另請參閱