Condividi tramite


WebPartManager.AuthorizeWebPart Evento

Definizione

Si verifica quando viene chiamato il metodo IsAuthorized per determinare se è possibile aggiungere a una pagina un controllo WebPart o un controllo server.

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 metodo verifica se i controlli nella mgr1_AuthorizeWebPart 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. Ciò presuppone che l'approccio predefinito sia quello di consentire agli utenti di visualizzare i controlli con una pagina nell'ambito di personalizzazione utente. Si noti tuttavia che nell'esempio uno dei controlli ha il valore della AuthorizationFilter proprietà impostato su admin. Gli sviluppatori possono inserire questo filtro su un controllo specializzato progettato per visualizzare solo gli utenti amministrativi. Questo controllo avrà esito negativo sul controllo dell'autorizzazione durante l'evento AuthorizeWebPart e non verrà visualizzato. Si noti che i controlli che non dispongono del set di proprietà vengono visualizzati anche; 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 viene aggiunto un WebPart controllo a una pagina. Esistono diversi scenari comuni in cui è possibile aggiungere un controllo a una pagina. Per una descrizione completa di questi elementi, vedere la sezione Osservazioni per il IsAuthorized metodo . Quando viene aggiunto un controllo, è necessario verificare se la proprietà AuthorizationFilter è stata impostata e, in caso affermativo, 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.

Si applica a

Vedi anche