PersonalizationAdministration 类

定义

为 Web 部件的个性化设置实现管理功能。 此类不能被继承。

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

示例

下面的代码示例演示如何在 类中使用 PersonalizationAdministration 多个方法。 此示例包含引用名为 Persadmin.ascx的 Web 部件用户控件的.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 网页验证用户输入是否不包含脚本或 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 部件个性化管理和管理功能。 这些方法适用于 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[])

为指定的路径重置基础数据存储区中的所有每用户状态。

适用于

另请参阅