Udostępnij za pośrednictwem


WebPartManager.AuthorizeWebPart Zdarzenie

Definicja

Występuje, gdy metoda jest wywoływana w IsAuthorized celu określenia, czy kontrolka WebPart serwera lub może zostać dodana do strony.

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 

Typ zdarzenia

Przykłady

W poniższym przykładzie kodu pokazano, jak ustawić niestandardową procedurę obsługi zdarzeń dla AuthorizeWebPart zdarzenia, która automatycznie zastępuje metodę domyślną OnAuthorizeWebPart .

Kod w metodzie mgr1_AuthorizeWebPart sprawdza, czy kontrolki na stronie mają odpowiednie AuthorizationFilter wartości właściwości ustawione na user i, jeśli tak, zwraca truewartość , co oznacza, że zostaną autoryzowane i dodane do strony. Przyjęto założenie, że domyślne podejście polega na umożliwieniu użytkownikom wyświetlania kontrolek ze stroną w zakresie personalizacji użytkownika. Zwróć jednak uwagę, że w przykładzie jedna z kontrolek ma jej AuthorizationFilter wartość właściwości ustawioną na adminwartość . Deweloperzy mogą umieścić ten filtr na wyspecjalizowanej kontrolce, która została zaprojektowana tylko dla użytkowników administracyjnych do wyświetlenia. Ta kontrolka zakończy się niepowodzeniem podczas sprawdzania AuthorizeWebPart autoryzacji podczas zdarzenia i nie będzie wyświetlana. Należy pamiętać, że wyświetlane są również kontrolki, które nie mają zestawu właściwości; zakłada się, że nie są częścią scenariusza filtrowania, ponieważ ich AuthorizationFilter właściwości nie są ustawione.

<%@ 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>

Uwagi

Zdarzenie AuthorizeWebPart występuje za każdym razem, gdy kontrolka WebPart jest dodawana do strony. Istnieje wiele typowych scenariuszy, w których kontrolka może zostać dodana do strony. Pełny opis tych metod można znaleźć w IsAuthorized sekcji Uwagi. Po dodaniu kontrolki należy sprawdzić, czy jej AuthorizationFilter właściwość została ustawiona, i, jeśli tak, czy kontrolka jest autoryzowana do dodania do strony.

Deweloperzy mogą tworzyć programy obsługi zdarzeń dla AuthorizeWebPart zdarzenia w celu zapewnienia filtrowania kontrolek. Jeśli wartość właściwości kontrolki AuthorizationFilter nie spełnia kryteriów w kodzie procedury obsługi zdarzeń, kontrolka nie zostanie dodana do strony.

Dotyczy

Zobacz też