WebPartManager.AuthorizeWebPart Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o método IsAuthorized é chamado para determinar se um WebPart ou um controle 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 a seguir demonstra como definir um manipulador de eventos personalizado para o AuthorizeWebPart evento, que substitui automaticamente o método padrão OnAuthorizeWebPart .
O código no mgr1_AuthorizeWebPart
método verifica se os controles na página têm seus respectivos AuthorizationFilter valores de propriedade definidos como user
e, nesse caso, retorna true
, o que significa que eles serão autorizados e adicionados à página. Isso pressupõe que a abordagem padrão é permitir que os usuários exibam controles com uma página no escopo de personalização do usuário. Observe, no entanto, que, no exemplo, um dos controles tem seu AuthorizationFilter valor de propriedade definido como admin
. Os desenvolvedores podem colocar esse filtro em um controle especializado que foi projetado apenas para usuários administrativos verem. Esse controle falhará na verificação de autorização durante o AuthorizeWebPart evento e não será exibido. Observe que os controles que não têm o conjunto de propriedades também são exibidos; supõe-se que eles não fazem parte de um cenário de filtragem porque 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>
Comentários
O AuthorizeWebPart evento ocorre sempre que um WebPart controle está sendo adicionado a uma página. Há vários cenários comuns em que um controle pode ser adicionado a uma página. Para obter uma descrição completa deles, consulte a seção Comentários para o IsAuthorized método . Quando um controle é adicionado, ele deve ser verificado para ver se sua AuthorizationFilter propriedade foi definida e, nesse caso, se o controle está autorizado a ser adicionado à página.
Os desenvolvedores podem criar manipuladores de eventos para o AuthorizeWebPart evento, para fornecer filtragem para controles. Se o valor da propriedade de AuthorizationFilter um controle não atender aos critérios no código do manipulador de eventos, o controle não será adicionado à página.