WebPartManager.AuthorizeWebPart Evento

Definição

Ocorre quando o IsAuthorized método é chamado para determinar se um WebPart controlo de servidor pode ser adicionado a uma página.

public:
 event System::Web::UI::WebControls::WebParts::WebPartAuthorizationEventHandler ^ AuthorizeWebPart;
public event System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler AuthorizeWebPart;
member this.AuthorizeWebPart : System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler 
Public Custom Event AuthorizeWebPart As WebPartAuthorizationEventHandler 

Tipo de Evento

Exemplos

O exemplo de código seguinte demonstra como definir um gestor de eventos personalizado para o AuthorizeWebPart evento, que substitui automaticamente o método padrão OnAuthorizeWebPart .

O código do mgr1_AuthorizeWebPart método verifica se os controlos na página têm os respetivos AuthorizationFilter valores de propriedade definidos como user e, se sim, devolve true, o que significa que serão autorizados e adicionados à página. Isto pressupõe que a abordagem padrão é permitir que os utilizadores visualizem os controlos com uma página no âmbito de personalização do utilizador. Note-se, no entanto, que no exemplo um dos controlos tem o valor de propriedade AuthorizationFilter definido como admin. Os programadores podiam colocar este filtro num controlo especializado que foi concebido apenas para utilizadores administrativos verem. Este controlo falhará na verificação de autorização durante o AuthorizeWebPart evento e não será exibido. Note que os controlos que não têm o conjunto de propriedades também são exibidos; assume-se que não fazem parte de um cenário de filtragem porque as suas AuthorizationFilter propriedades não estão definidas.

<%@ 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">
  
  protected void mgr1_AuthorizeWebPart(object sender, 
    WebPartAuthorizationEventArgs e)
  {
    if (!String.IsNullOrEmpty(e.AuthorizationFilter))
    {
      if (e.AuthorizationFilter == "user")
        e.IsAuthorized = true;
      else
        e.IsAuthorized = false;
    }
  }
  
</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:WebPartManager ID="mgr1" runat="server"
        OnAuthorizeWebPart="mgr1_AuthorizeWebPart" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Label ID="Label1" runat="server" 
            Text="Hello World"
            Title="Filter Test"
            AuthorizationFilter="admin" />
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  
  Protected Sub mgr1_AuthorizeWebPart(ByVal sender As Object, _
    ByVal e As WebPartAuthorizationEventArgs)
    
    If Not String.IsNullOrEmpty(e.AuthorizationFilter) Then
      If e.AuthorizationFilter = "user" Then
        e.IsAuthorized = True
      Else
        e.IsAuthorized = False
      End If
    End If

  End Sub
</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:WebPartManager ID="mgr1" runat="server" 
        OnAuthorizeWebPart="mgr1_AuthorizeWebPart" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Label ID="Label1" runat="server" 
            Text="Hello World"
            Title="Filter Test"
            AuthorizationFilter="admin" />
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    </form>
</body>
</html>

Observações

O AuthorizeWebPart evento ocorre sempre que um WebPart controlo está a ser adicionado a uma página. Existem vários cenários comuns em que um controlo pode ser adicionado a uma página. Para uma descrição completa destes, consulte a secção de Observações para o IsAuthorized método. Quando um controlo é adicionado, deve ser verificado para verificar se a sua AuthorizationFilter propriedade foi definida e, em caso afirmativo, se o controlo está autorizado a ser adicionado à página.

Os programadores podem criar handlers de eventos para o AuthorizeWebPart evento, para fornecer filtragem de controlos. Se o valor da AuthorizationFilter propriedade de um controlo não cumprir os critérios do código do gestor de eventos, o controlo não é adicionado à página.

Aplica-se a

Ver também