WebPart.AuthorizationFilter Eigenschaft

Definition

Ruft eine beliebige Zeichenfolge ab, um zu bestimmen, ob für ein WebPart-Steuerelement die Autorisierung zum Hinzufügen zu einer Seite besteht, oder legt diese fest.

public:
 virtual property System::String ^ AuthorizationFilter { System::String ^ get(); void set(System::String ^ value); };
[System.Web.UI.Themeable(false)]
[System.Web.UI.WebControls.WebParts.Personalizable(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)]
public virtual string AuthorizationFilter { get; set; }
[<System.Web.UI.Themeable(false)>]
[<System.Web.UI.WebControls.WebParts.Personalizable(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)>]
member this.AuthorizationFilter : string with get, set
Public Overridable Property AuthorizationFilter As String

Eigenschaftswert

Eine Zeichenfolge, die die Autorisierung zum Hinzufügen eines Steuerelements zu einer Webseite erteilt. Der Standardwert ist eine leere Zeichenfolge ("").

Attribute

Beispiele

Im folgenden Codebeispiel wird die Verwendung des AuthorizationFilter-Attributs veranschaulicht. Es wird gezeigt, wie ein benutzerdefinierter Methodenhandler für das AuthorizeWebPart Ereignis festgelegt wird, sodass der Handler benutzerdefinierten Filtercode für die OnAuthorizeWebPart -Methode bereitstellen kann. Dieses Beispiel wäre eine typische Möglichkeit für einen Seitenentwickler, ein Filterszenario und die Autorisierung von WebPart Steuerelementen bereitzustellen, die einer Seite hinzugefügt werden sollen.

Beachten Sie im Webseitencode, dass das <asp:webpartmanager> -Element über das OnAuthorizeWebPart -Attribut mit dem Namen des Ereignishandlers verfügt, der ihm zugewiesen ist. Mit dieser Methode wird überprüft, ob für die Steuerelemente auf der Seite der AuthorizationFilter -Eigenschaftswert festgelegt administ, und wenn dies der Fall ist, wird zurückgegeben true, was bedeutet, dass sie autorisiert und der Seite hinzugefügt werden.

Hinweis

Beachten Sie, dass Steuerelemente, denen der AuthorizationFilter Eigenschaft kein Wert zugewiesen ist, ebenfalls hinzugefügt werden, da davon ausgegangen wird, dass sie nicht Teil eines Filterszenarios sind. Dies wäre ein gängiger Ansatz in einem Filterszenario: Einige Steuerelemente würden gefiltert, andere nicht, da davon ausgegangen wird, dass sie für alle Benutzer verfügbar sind.

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

Da das Einrichten von Benutzern in Rollen den Rahmen dieses Themas sprengt, überprüft dieses Codebeispiel keine Benutzerrollen in der Filterung. Das Szenario des Filterns von Steuerelementen nach Benutzerrollen ist jedoch wahrscheinlich eine der häufigsten Verwendungen dieses Filterfeatures. Wenn Sie über Rollen auf Ihrer Website verfügen und Benutzerrollen in dieser Methode überprüfen möchten, um Steuerelemente zu filtern, ähnelt die Methode dem folgenden Codeblock (im Gegensatz zum einfacheren Ansatz im vorherigen Codebeispiel, bei dem keine Rollen verwendet werden).

protected void mgr1_AuthorizeWebPart(object sender,   
  WebPartAuthorizationEventArgs e)  
{  
  if (!String.IsNullOrEmpty(e.AuthorizationFilter))  
  {  
    if(Roles.IsUserInRole(Page.User.Identity.Name, e.authorizationFilter))  
      e.IsAuthorized = true;  
    else  
      e.IsAuthorized = false;  
  }  
}  

Hinweise

Der Webparts-Steuerelementsatz implementiert kein Standardverhalten für die AuthorizationFilter Eigenschaft. Die -Eigenschaft wird jedoch bereitgestellt, damit Sie einem benutzerdefinierten WebPart Steuerelement einen beliebigen Zeichenfolgenwert zuweisen können. Diese Eigenschaft kann vom Steuerelement während des WebPartManager -Ereignisses AuthorizeWebPart überprüft werden, um zu bestimmen, ob das Steuerelement der Seite hinzugefügt werden kann.

In einigen Fällen kann die AuthorizationFilter -Eigenschaft mit dem Feature ASP.NET Rollen-Manager verwendet werden, sodass das Steuerelement hinzugefügt werden kann, wenn sich ein Benutzer in einer bestimmten Rolle befindet und wenn der Zeichenfolgenwert der AuthorizationFilter Eigenschaft bestimmte vom Entwickler festgelegte Bedingungen erfüllt. Dieser Ansatz ermöglicht es Entwicklern, benutzerdefinierte Ansichten einer Seite basierend auf einer Kombination aus Rollen und anderen Autorisierungskriterien zu erstellen, die sie angeben.

Diese Eigenschaft kann nicht durch Designs oder Stylesheetdesigns festgelegt werden. Weitere Informationen finden Sie unter ThemeableAttribute und ASP.NET-Designs und Skins.

Der Personalisierungsbereich dieser Eigenschaft ist auf Shared festgelegt und kann nur von autorisierten Benutzern geändert werden. Weitere Informationen finden Sie unter PersonalizableAttribute und Übersicht über die Personalisierung von Webparts.

Hinweise für Vererber

Um diese Eigenschaft verwenden zu können, müssen Sie ein benutzerdefiniertes WebPartManager Steuerelement erstellen und entweder die - OnAuthorizeWebPart(WebPartAuthorizationEventArgs) Methode oder die - IsAuthorized(WebPart) Methode überschreiben, um die Überprüfung auf die AuthorizationFilter Eigenschaft zu behandeln.

Gilt für:

Weitere Informationen