WebPartManager.AuthorizeWebPart Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando viene chiamato il IsAuthorized metodo per determinare se un WebPart controllo server o può essere aggiunto a una pagina.
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 evento
Esempio
Nell'esempio di codice seguente viene illustrato come impostare un gestore eventi personalizzato per l'evento, che esegue automaticamente l'override AuthorizeWebPart del metodo predefinito OnAuthorizeWebPart .
Il codice nel mgr1_AuthorizeWebPart metodo controlla se i controlli nella pagina hanno i rispettivi AuthorizationFilter valori delle proprietà impostati su user e, in tal caso, restituisce true, il che significa che verranno autorizzati e aggiunti alla pagina. Si presuppone che l'approccio predefinito sia consentire agli utenti di visualizzare i controlli con una pagina nell'ambito della personalizzazione dell'utente. Si noti, tuttavia, che nell'esempio uno dei controlli ha il AuthorizationFilter valore della proprietà impostato su admin. Gli sviluppatori potrebbero inserire questo filtro in un controllo specializzato progettato per visualizzare solo gli utenti amministratori. Questo controllo non riuscirà a controllare l'autorizzazione durante l'evento AuthorizeWebPart e non verrà visualizzato. Si noti che vengono visualizzati anche i controlli che non dispongono del set di proprietà; si presuppone che non faccia parte di uno scenario di filtro perché le relative AuthorizationFilter proprietà non sono impostate.
<%@ 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>
Commenti
L'evento AuthorizeWebPart si verifica ogni volta che un WebPart controllo viene aggiunto a una pagina. Esistono diversi scenari comuni in cui un controllo può essere aggiunto a una pagina. Per una descrizione completa di queste informazioni, vedere la sezione Osservazioni per il IsAuthorized metodo . Quando viene aggiunto un controllo, è necessario controllare se la relativa AuthorizationFilter proprietà è stata impostata e, in tal caso, se il controllo è autorizzato ad essere aggiunto alla pagina.
Gli sviluppatori possono creare gestori eventi per l'evento AuthorizeWebPart , per fornire filtri per i controlli. Se il valore della proprietà di AuthorizationFilter un controllo non soddisfa i criteri nel codice del gestore eventi, il controllo non viene aggiunto alla pagina.