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 控件。

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 部件个性化设置的管理和管理功能。 这些方法适用于在控件中 WebPartManager 为 Web 部件控件配置的默认个性化提供程序。 如果需要管理充当个性化提供程序的多个数据存储,则应直接在各个个性化设置提供程序类上使用方法。 请注意,控件配置的个性化设置提供程序 WebPartManager 集合可从 Providers 静态属性获取。

请务必注意,如果 Web 应用程序未在默认信任级别或更高级别运行(可以使用元素在 Web.config 文件中Medium设置自定义信任级别<trust level="" />),个性化设置将失败。 和PersonalizationAdministrationSqlPersonalizationProvider类都检查其初始化时的信任级别Low。 如果将应用程序配置为在信任级别运行 Low, 使用默认的 SqlPersonalizationProvider 提供程序来管理应用程序的个性化数据,应用程序首次尝试访问个性化设置数据时会失败,因为Low信任中运行的 ASP.NET 工作进程没有调用 System.Data.SqlClient 命名空间中各种类所需的权限。

属性

名称 说明
ApplicationName

获取或设置提供程序指定的应用程序的名称。

Provider

返回默认个性化设置提供程序的实例。

Providers

返回按名称编制索引的个性化设置提供程序的集合。

方法

名称 说明
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[])

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

适用于

另请参阅