PersonalizationAdministration 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 Web 部件的个性化设置实现管理功能。 此类不能被继承。
public ref class PersonalizationAdministration abstract sealedpublic static class PersonalizationAdministrationtype PersonalizationAdministration = classPublic 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>
         <asp:LoginName ID="LoginName1" runat="server" />
         
        <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" />
            <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>
 
<asp:Label ID="Label4" runat="server" Width="77px" ForeColor="Red" />
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Find User" OnClick="Button1_Click" />   
<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="" /> 设置自定义信任级别。 
              PersonalizationAdministration和 SqlPersonalizationProvider 类在初始化时都检查的信任级别Low。 如果将应用程序配置为在 信任级别 Low运行,并且使用默认 SqlPersonalizationProvider 提供程序管理应用程序的个性化设置数据,则应用程序首次尝试访问个性化数据时会失败,因为信任中 Low 运行的 ASP.NET 工作进程没有调用命名空间中 System.Data.SqlClient 各种类所需的权限。
属性
| ApplicationName | 获取或设置提供程序指定的应用程序名称。 | 
| Provider | 返回默认个性化设置提供程序的一个实例。 | 
| Providers | 返回按名称索引的个性化设置提供程序集合。 |