Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe WebPartPersonalization

 

Operações de nível baixo de personalização implementa.

Namespace:   System.Web.UI.WebControls.WebParts
Assembly:  System.Web (em System.Web.dll)

System.Object
  System.Web.UI.WebControls.WebParts.WebPartPersonalization

public class WebPartPersonalization

NomeDescrição
System_CAPS_pubmethodWebPartPersonalization(WebPartManager)

Inicializa uma nova instância da classe WebPartPersonalization.

NomeDescrição
System_CAPS_pubpropertyCanEnterSharedScope

Retorna um valor que indica se o usuário está autorizado a inserir Shared escopo.

System_CAPS_pubpropertyEnabled

Retorna um valor que indica se a personalização é solicitada para ser habilitado para associado WebPartManager controle.

System_CAPS_pubpropertyHasPersonalizationState

Retorna um valor que indica se a página atual e o escopo de personalização tiveram associado os dados de personalização.

System_CAPS_pubpropertyInitialScope

Obtém ou define o escopo de personalização padrão.

System_CAPS_pubpropertyIsEnabled

Obtém um valor que indica se a personalização é habilitada e carregado com êxito os dados de personalização para esta instância do WebPartPersonalization classe.

System_CAPS_protpropertyIsInitialized

Obtém um valor que indica se a personalização é habilitada e carregado com êxito os dados de personalização para esta instância do WebPartPersonalization classe.

System_CAPS_pubpropertyIsModifiable

Obtém um valor que indica se o usuário atual está autorizado a modificar as informações de estado.

System_CAPS_pubpropertyProviderName

Obtém ou define o nome do provedor para personalização.

System_CAPS_pubpropertyScope

Obtém o escopo atual de personalização para o pai WebPartManager controle.

System_CAPS_protpropertyShouldResetPersonalizationState

Obtém ou define um valor que indica se os dados de personalização da página atual foi redefinidos (por exemplo, foi feita uma solicitação para excluir os dados de personalização do armazenamento de dados subjacente).

System_CAPS_protpropertyUserCapabilities

Obtém o conjunto de recursos do usuário do WebPartUserCapability concedidas ao usuário atual.

System_CAPS_protpropertyWebPartManager

Obtém uma instância do pai atual WebPartManager controle associado a esse WebPartPersonalization instância.

NomeDescrição
System_CAPS_protmethodApplyPersonalizationState()

Aplica-se os dados de personalização para o pai WebPartManager controle.

System_CAPS_protmethodApplyPersonalizationState(WebPart)

Aplica-se os dados de personalização especificado WebPart controlar quando solicitado pelo pai WebPartManager controle.

System_CAPS_protmethodChangeScope(PersonalizationScope)

Altera a página atual PersonalizationScope instância para o escopo especificado.

System_CAPS_protmethodCopyPersonalizationState(WebPart, WebPart)

Extrai o estado de personalização de um controle de Web Parts e aplica-se a um segundo controle de Web Parts.

System_CAPS_pubmethodEnsureEnabled(Boolean)

Garante que o WebPartPersonalization instância concluiu a inicialização ou o usuário atual tem direitos para modificar o estado de personalização.

System_CAPS_pubmethodEquals(Object)

Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)

System_CAPS_protmethodExtractPersonalizationState()

Extrai dados de personalização do pai WebPartManager controle.

System_CAPS_protmethodExtractPersonalizationState(WebPart)

Extrai dados de personalização de um controle de Web Parts quando solicitado pelo pai WebPartManager controle.

System_CAPS_protmethodFinalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)

System_CAPS_protmethodGetAuthorizationFilter(String)

Recupera o filtro de autorização, se houver, associado com o controle de Web Parts especificado.

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_protmethodLoad()

Inicializa a personalização.

System_CAPS_protmethodMemberwiseClone()

Cria uma cópia superficial do Object atual.(Herdado de Object.)

System_CAPS_pubmethodResetPersonalizationState()

Redefine os dados de personalização para a página atual, o escopo e o usuário no armazenamento de dados subjacente.

System_CAPS_protmethodSave()

Salva os dados de personalização para a página atual, o escopo e o usuário para o armazenamento de dados subjacente.

System_CAPS_protmethodSetDirty()

Marca pai WebPartManager controle como tendo dados de personalização que foi alterada (é "sujos").

System_CAPS_protmethodSetDirty(WebPart)

Marca o controle de Web Parts especificado como tendo dados de personalização que foi alterada (é "sujos").

System_CAPS_pubmethodToggleScope()

Alterna o escopo de personalização da página atual de User para Shared ou Shared para User.

System_CAPS_pubmethodToString()

Retorna uma string que representa o objeto atual.(Herdado de Object.)

NomeDescrição
System_CAPS_pubfieldSystem_CAPS_staticEnterSharedScopeUserCapability

Representa o WebPartUserCapability instância de autorização do usuário para inserir Shared escopo.

System_CAPS_pubfieldSystem_CAPS_staticModifyStateUserCapability

Representa o WebPartUserCapability instância de autorização do usuário para modificar o estado de personalização.

Essa classe implementa a lógica necessária para executar operações de personalização de nível inferior. Embora o WebPartManager classe gerencia o ciclo de vida de alto nível de personalização, ele é o WebPartPersonalization classe que é responsável pela implementação físicas etapas necessárias para executar ações de personalização específicas. O WebPartPersonalization classe por sua vez se baseia em uma implementação de PersonalizationProvider para se comunicar com o armazenamento de dados subjacente para obter informações de personalização.

Se você usar a implementação padrão da WebPartManager, ele cria uma instância da WebPartPersonalization classe que você pode usar referenciando o Personalization propriedade. Por exemplo, para acessar o InitialScope propriedade, você deve especificar WebPartManager.Personalization.InitialScope.

Observações para os Herdeiros:

O WebPartPersonalization classe trabalha em conjunto com um WebPartManager controle e o restante da infraestrutura de personalização. A implementação padrão de personalização é um subsistema muito eficiente que deve atender às suas necessidades de personalização. Na maioria dos casos, se você desejar personalizar personalização, você pode criar um provedor de dados para uso como um provedor de personalização, criando uma classe que herda de PersonalizationProvider.

Se você deseja criar um subsistema de personalização significativamente diferente daquela fornecida pelo WebPartPersonalization e o WebPartManager classes, você deve criar um personalizado WebPartPersonalization implementação derivando WebPartPersonalization e adicionar sua própria lógica personalizada. Em seguida, criar um personalizado WebPartManager implementação derivando WebPartManager, adicionar sua própria lógica personalizada e substituir o CreatePersonalization método retorne seu personalizado WebPartPersonalization implementação. Porque um WebPartManager controle faz solicitações para a infra-estrutura de personalização por meio de um WebPartPersonalization instância, o WebPartManager controle não diretamente interagir com ou manter referências a PersonalizationProvider implementações.

O seguinte exemplo de código mostra como o WebPartPersonalization classe é usada, bem como fornece um exemplo de como o escopo de personalização afeta os resultados das propriedades personalizadas. Este exemplo tem cinco arquivos:

  • Uma página. aspx que declarativamente cria duas zonas de Web Part, cada um com um controle.

  • Um controle de usuário chamado Color.ascx que permite que um usuário altere uma propriedade personalizada que se aplica uma cor de plano de fundo da caixa de texto com base nos direitos de autorização do usuário para modificar as informações de estado e inserir o escopo compartilhado.

  • Um controle de usuário chamado Persmode.ascx que indica qual é o escopo da página atual e quais são os direitos do usuário atual tem para inserir escopo compartilhado ou para modificar dados; ele também fornece dois botões; um para alterar o escopo e outro para redefinir as informações de personalização de usuário atual.

  • Um controle de logon que é usado para autorizar usuários.

  • Um arquivo Web. config com uma seção que fornece um exemplo de autorizar um usuário para modificar o estado de personalização e inserir o escopo compartilhado.

O código a seguir cria uma página aspx com um WebPartManager e duas Web Parts zonas e exibe o Color.ascx e Persmode.ascx controles. A página for carregada uma página de logon que é usada para obter as informações do usuário atual. Use a ferramenta de administração de Site da Web ASP.NET em Microsoft Visual Studio 2005 para criar usuários para acessar a página. Consulte o arquivo Web. config para um exemplo de um usuário que recebeu a autorização no arquivo de configuração para alterar o escopo e modificar informações de estado.

<%@ Page Language="C#" %>
<%@ Register TagPrefix="control"  TagName="colorcontrol" Src="~/color.ascx"%>
<%@Register TagPrefix="pmode" TagName="persmode" Src="~/persMode.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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <!-- Create Web Part manager and zone for the color user control. -->
        <asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
            <asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="Color Change Zone">
                <ZoneTemplate>
                <!-- Note that the control is Shared since it is declared on the page. -->
                    <control:colorcontrol id="color1" title="Color Control" runat="server" />
                </ZoneTemplate>
            </asp:WebPartZone>

        <br />
            <!-- Create Web Part zone for the personalization mode user control. -->
            <asp:WebPartZone ID="WebPartZone2" runat="server" HeaderText="Scope Change Zone" Height="109px">
                <ZoneTemplate>
                    <pmode:persmode  ID="Persmode1" runat="server" title="Scope Tool"/>
                </ZoneTemplate>
            </asp:WebPartZone>

    </form>
</body>
</html>

O exemplo de código a seguir cria uma página de logon. Após um logon bem-sucedido, ele redireciona para a página aspx principal.

System_CAPS_security Segurança Observação

Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança. Por padrão, páginas da Web ASP.NET validam a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Script Exploits Overview.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Login ID="Login1" runat="server" BorderWidth="1px" BorderColor="#E6E2D8" BorderPadding="4"
            BorderStyle="Solid" BackColor="#F7F6F3" ForeColor="#333333" Font-Names="Verdana"
            Font-Size="0.8em" DestinationPageUrl="~/Defaultcs.aspx">
            <InstructionTextStyle ForeColor="Black" Font-Italic="True" Font-Size="0.8em" />
            <LoginButtonStyle Font-Names="Verdana" Font-Size="0.8em" BorderStyle="Solid" BorderWidth="1px"
                BorderColor="#CCCCCC" BackColor="#FFFBFF" ForeColor="#284775" />
            <TextBoxStyle Font-Size="0.8em" />
            <LabelStyle Font-Size="0.8em" />
            <TitleTextStyle ForeColor="White" Font-Size="0.9em" Font-Bold="True" BackColor="#5D7B9D" />
            <HyperLinkStyle Font-Size="0.8em" />
            <CheckBoxStyle Font-Size="0.8em" />
            <FailureTextStyle ForeColor="#FF0000" Font-Size="0.8em" />
        </asp:Login>   
You can create new users with the ASP.NET Web Site Administration Tool in Microsoft Visual Studio 2005. 
See also the web.config file for user authorization examples.
    </div>
    </form>
</body>
</html>

O exemplo de código a seguir é uma parte do arquivo Web. config para este aplicativo. Esta seção mostra como definir a autorização para um usuário, neste caso, "Usuário2", para inserir o escopo de personalização compartilhado e para modificar informações de estado de personalização. Ele também mostra um exemplo de uma função, neste caso "admin", que pode ser usado para permitir que os usuários na função "admin" para inserir escopo de personalização compartilhado e para modificar informações de estado de personalização.

O exemplo de código a seguir cria um controle de usuário chamado Color.ascx, que permite que o usuário altere uma propriedade personalizada, neste caso, a cor de plano de fundo das duas caixas de texto, com base no escopo atual de personalização e os direitos de autorização do usuário.

System_CAPS_security Segurança Observação

Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança. Por padrão, páginas da Web ASP.NET validam a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Script Exploits Overview.

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

<script runat="server">
    // User a field to reference the current WebPartManager.
    private WebPartManager _manager;

    //  Defines personalized property for User scope. In this case, the property is
    //   the background color of the text box.
    [Personalizable(PersonalizationScope.User)]
    public System.Drawing.Color UserColorChoice
    {
        get
        {
            return _coloruserTextBox.BackColor;
        }
        set
        {
            _coloruserTextBox.BackColor = value;
        }
    }

    // Defines personalized property for Shared scope. In this case, the property is
    //   the background color of the text box.
    [Personalizable(PersonalizationScope.Shared) ]
    public System.Drawing.Color SharedColorChoice
    {
        get
        {
            return _colorsharedTextBox.BackColor;
        }
        set
        {
            _colorsharedTextBox.BackColor = value;
        }
    }


    void Page_Init(object sender, EventArgs e)
    {
       _manager = WebPartManager.GetCurrentWebPartManager(Page);       
    }

    protected void Page_Load(object src, EventArgs e) 
    {
     // If Web Parts manager scope is User, hide the button that changes shared control.
       if (_manager.Personalization.Scope == PersonalizationScope.User)
       {
           _sharedchangeButton.Visible = false;
                  if (!_manager.Personalization.IsModifiable)
                      _userchangeButton.Enabled = false;
       }
       else
       {
           _sharedchangeButton.Visible = true; 
                  if (!_manager.Personalization.IsModifiable)
                    {
                      _sharedchangeButton.Enabled = false;
                      _userchangeButton.Enabled = false;
                    }
       } 
    }

    // Changes color of the User text box background when button clicked by authorized user.
    protected void _userButton_Click(object src, EventArgs e)
    {
        switch(_coloruserTextBox.BackColor.Name)
        {
            case "Red":
                _coloruserTextBox.BackColor = System.Drawing.Color.Yellow;
                break;
            case "Yellow":
                _coloruserTextBox.BackColor = System.Drawing.Color.Green;
                break;
            case "Green":
                _coloruserTextBox.BackColor = System.Drawing.Color.Red;
                break;
        }
    }

    // Changes color of the Shared text box background when button clicked by authorized user.
    protected void _sharedButton_Click(object src, EventArgs e)
    {
        switch (_colorsharedTextBox.BackColor.Name)
        {
            case "Red":
                _colorsharedTextBox.BackColor = System.Drawing.Color.Yellow;
                break;
            case "Yellow":
                _colorsharedTextBox.BackColor = System.Drawing.Color.Green;
                break;
            case "Green":
                _colorsharedTextBox.BackColor = System.Drawing.Color.Red;
                break;
        }        
    }   

</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>WebParts Personalization Example</title>
</head>
<body>
<p>
    <asp:LoginName ID="LoginName1" runat="server" BorderWidth="500" BorderStyle="none" />
    <asp:LoginStatus ID="LoginStatus1" LogoutAction="RedirectToLoginPage" runat="server" />
</p>
    <asp:Label ID="ScopeLabel" Text="Scoped Properties:" runat="server" Width="289px"></asp:Label>
    <br />
    <table style="width: 226px">

        <tr>
            <td>
                <asp:TextBox ID="_coloruserTextBox" Font-Bold="True" Height="110px" 
                runat="server" Text="User Property" BackColor="red" Width="110px" /> 
            </td>
            <td>       
                <asp:TextBox ID="_colorsharedTextBox" runat="server" Height="110px" 
                Width="110px" Text="Shared Property" BackColor="red" Font-Bold="true" />
            </td>
       </tr>
        <tr>
            <td>
                <asp:Button Text="Change User Color" ID="_userchangeButton" 
                runat="server" OnClick="_userButton_Click" />
            </td>
            <td >
                <asp:Button Text="Change Shared Color" ID="_sharedchangeButton" 
                runat="server" OnClick="_sharedButton_Click" />
            </td>
        </tr>
    </table>
</body>
</html>

O exemplo de código a seguir cria um controle de usuário chamado Persmode.ascx, que mostra o escopo de personalização atual e o estado de direitos de usuário para modificar e inserir escopo compartilhado. Ele também tem um botão Redefinir para redefinir o estado atual de personalização.

<%@ control language="C#" %>

<script runat="server">

 // Use a field to reference the current WebPartManager.
  private WebPartManager _manager;

    protected void Page_Load(object src, EventArgs e)
    {
        // Get the current Web Parts manager.
        _manager = WebPartManager.GetCurrentWebPartManager(Page);

        // All radio buttons are disabled; the button settings show what the current state is.
        EnterSharedRadioButton.Enabled = false;
        ModifyStateRadioButton.Enabled = false;

        // If Web Parts manager is in User scope, set scope button.
        if (_manager.Personalization.Scope == PersonalizationScope.User)
            UserScopeRadioButton.Checked = true;
        else
            SharedScopeRadioButton.Checked = true;

        // Based on current user rights to enter Shared scope, set buttons.
        if (_manager.Personalization.CanEnterSharedScope)
        {
            EnterSharedRadioButton.Checked = true;
            No_Shared_Scope_Label.Visible = false;
            Toggle_Scope_Button.Enabled = true;
        }
        else
        {
            EnterSharedRadioButton.Checked = false;
            No_Shared_Scope_Label.Visible = true;
            Toggle_Scope_Button.Enabled = false;
        }

        // Based on current user rights to modify personalization state, set buttons.
        if (_manager.Personalization.IsModifiable)
        {
            ModifyStateRadioButton.Checked = true;
            Reset_User_Button.Enabled = true;
        }
        else
        {
            ModifyStateRadioButton.Checked = false;
            Reset_User_Button.Enabled = false;
        }
    }
  // Resets all of a user and shared personalization data for the page.
    protected void Reset_CurrentState_Button_Click(object src, EventArgs e)
    {
        // User must be authorized to modify state before a reset can occur.
        //When in user scope, all users by default can change their own data.
        if (_manager.Personalization.IsModifiable)
        {
            _manager.Personalization.ResetPersonalizationState();
        }
    }

    // Allows authorized user to change personalization scope.
    protected void Toggle_Scope_Button_Click(object sender, EventArgs e)
    {
        if (_manager.Personalization.CanEnterSharedScope)
        {
            _manager.Personalization.ToggleScope();
        }

    }
</script>
<div>
    &nbsp;<asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="208px" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" Height="214px" >
    <asp:Label ID="Label1" runat="server" 
      Text="Page Scope" 
      Font-Bold="True"
      Font-Size="8pt"
      Width="120px" />&nbsp;<br />


      <asp:RadioButton ID="UserScopeRadioButton" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope"  
         Enabled="false" />
      <asp:RadioButton ID="SharedScopeRadioButton" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        Enabled="false" />
        <br />
        <asp:Label BorderStyle="None" Font-Bold="True" Font-Names="Courier New" ID="No_Shared_Scope_Label" Font-Size="Smaller" ForeColor="red"
           runat="server" Visible="false" Width="179px">User cannot enter Shared scope</asp:Label>
        <br />
        <asp:Label ID="Label2" runat="server" 
      Text="Current User Can:" 
      Font-Bold="True"
      Font-Size="8pt"
      Width="165px" />
      <br />
        <asp:RadioButton ID="ModifyStateRadioButton" runat="server" 
        Text="Modify State" Width="138px" />
        <br />
        <asp:RadioButton ID="EnterSharedRadioButton" runat="server" 
        Text="Enter Shared Scope" 
        AutoPostBack="true"  />&nbsp;<br />
        <br />
        <asp:Button ID="Toggle_Scope_Button" OnClick="Toggle_Scope_Button_Click" runat="server"
            Text="Change Scope" Width="186px" /><br />
        <br />
        <asp:Button ID="Reset_User_Button" OnClick="Reset_CurrentState_Button_Click" runat="server"
            Text="Reset Current Personalization" Width="185px" /></asp:Panel>
    &nbsp; &nbsp;
</div>

.NET Framework
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: