WebPart.AuthorizationFilter Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen einer beliebigen Zeichenfolge, um zu bestimmen, ob ein WebPart Steuerelement autorisiert ist, einer Seite hinzugefügt zu werden.
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 das Hinzufügen eines Steuerelements zu einer Webseite autorisiert. Der Standardwert ist eine leere Zeichenfolge ("").
- Attribute
Beispiele
Im folgenden Codebeispiel wird die Verwendung der AuthorizationFilter Eigenschaft veranschaulicht. Es zeigt, wie ein benutzerdefinierter Methodenhandler für das AuthorizeWebPart Ereignis festgelegt wird, damit 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 Element das <asp:webpartmanager>OnAuthorizeWebPart Attribut mit dem Namen des ihm zugewiesenen Ereignishandlers hat. Mit dieser Methode wird überprüft, ob die Steuerelemente auf der Seite ihren AuthorizationFilter Eigenschaftswert auf admin", und wenn ja, wird truezurückgegeben, was bedeutet, dass sie autorisiert und der Seite hinzugefügt werden.
Hinweis
Beachten Sie, dass Steuerelemente, die AuthorizationFilter der Eigenschaft keinen Wert zugewiesen haben, 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 und andere nicht, da 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 über den Umfang dieses Themas hinausgeht, überprüft dieses Codebeispiel keine Benutzerrollen in der Filterung. Das Szenario der Filtersteuerelemente nach Benutzerrollen ist jedoch wahrscheinlich eine der häufigsten Verwendungsmöglichkeiten dieses Filterfeatures. Wenn Sie über Rollen auf Ihrer Website verfügen und Benutzerrollen in dieser Methode überprüfen möchten, um Steuerelemente zu filtern, würde die Methode dem folgenden Codeblock ähneln (im Vergleich 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 Steuerelementsatz für Webparts implementiert kein Standardverhalten für die AuthorizationFilter Eigenschaft. Die Eigenschaft wird jedoch bereitgestellt, damit Sie einem benutzerdefinierten Steuerelement einen beliebigen Zeichenfolgenwert WebPart zuweisen können. Diese Eigenschaft kann vom Steuerelement während AuthorizeWebPart des WebPartManager Ereignisses ü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 der Zeichenfolgenwert der AuthorizationFilter Eigenschaft bestimmte Vom Entwickler festgelegte Bedingungen erfüllt. Mit diesem Ansatz können Entwickler benutzerdefinierte Ansichten einer Seite basierend auf einer Kombination aus Rollen und anderen von ihnen angegebenen Autorisierungskriterien erstellen.
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 und kann nur von autorisierten Benutzern geändert werden. Weitere Informationen finden Sie unter PersonalizableAttribute " Übersicht über die Personalisierung von Webparts".
Hinweise für Vererber
Um diese Eigenschaft zu verwenden, müssen Sie ein benutzerdefiniertes WebPartManager Steuerelement erstellen und entweder seine OnAuthorizeWebPart(WebPartAuthorizationEventArgs) Methode oder seine IsAuthorized(WebPart) Methode außer Kraft setzen, um die Überprüfung auf die AuthorizationFilter Eigenschaft zu behandeln.