WebPartManager.IsAuthorized Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bepaalt of een WebPart of ander serverbeheer kan worden toegevoegd aan een pagina.
Overloads
| Name | Description |
|---|---|
| IsAuthorized(WebPart) |
Voert de eerste stappen uit om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd. |
| IsAuthorized(Type, String, String, Boolean) |
Voert de laatste stappen uit om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd. |
Opmerkingen
Onderdeel van de flexibiliteit van de functie Webonderdelen is de mogelijkheid om serverbesturingselementen tijdens runtime toe te voegen aan webpagina's. Er zijn een aantal veelvoorkomende scenario's waarin een serverbeheer (een aangepast WebPart-besturingselement, een aangepast serverbeheer, een gebruikersbeheer of een ASP.NET besturingselement) kan worden toegevoegd.
In de volgende veelvoorkomende scenario's probeert de besturingselementen voor webonderdelen aan een pagina toe te voegen en wordt de IsAuthorized methode aangeroepen om deze te autoriseren:
Wanneer een serverbeheer wordt toegevoegd door dit te declareren in de markeringen van een webpagina binnen een WebPartZoneBase zone.
Wanneer een serverbeheer programmatisch aan een zone wordt toegevoegd.
Wanneer een gebruiker een serverbesturingselement importeert in een catalogus met webonderdelen met besturingselementen.
Wanneer een bestaand serverbeheer wordt geladen vanuit het persoonlijke gegevensarchief.
Wanneer een serverbesturingselement wordt toegevoegd aan een DeclarativeCatalogPart besturingselement om het beschikbaar te maken in een catalogus met serverbesturingselementen.
In elk scenario waarin besturingselementen worden toegevoegd, wordt de IsAuthorized methode aangeroepen om ervoor te zorgen dat aan alle autorisatiecriteria is voldaan om toe te staan dat een besturingselement kan worden toegevoegd. Wanneer een besturingselement is geautoriseerd, wordt het normaal toegevoegd zoals het zou zijn als er geen filterscenario was. Wanneer een besturingselement niet is geautoriseerd, kan de set webonderdelen op verschillende manieren reageren, afhankelijk van de context. De besturingsset kan op de achtergrond geen niet-geautoriseerd onderdeel toevoegen (als de gebruiker niet hoeft te worden geïnformeerd), kan er een foutbericht worden weergegeven of kan een exemplaar van de UnauthorizedWebPart klasse als tijdelijke aanduiding worden toegevoegd. Dit tijdelijke aanduidingsobject is niet zichtbaar op de pagina, maar is zichtbaar in de broncode van de pagina om aan te geven dat een onbevoegd besturingselement is uitgesloten.
Determinant of een besturingselement is geautoriseerd, is het autorisatiefilter. Een autorisatiefilter is een functie in de set webonderdelen waarmee ontwikkelaars alle besturingselementen die niet voldoen aan de opgegeven criteria, kunnen uitsluiten van een pagina.
Ontwikkelaars moeten twee dingen doen om een filterscenario te maken. Eerst moeten ze een tekenreekswaarde (de waarde kan willekeurig zijn) toewijzen aan de AuthorizationFilter eigenschap van elk WebPart besturingselement dat ze in het scenario willen gebruiken. Ze kunnen ook een waarde toewijzen aan deze eigenschap voor andere typen serverbesturingselementen die geen WebPart besturingselementen zijn, omdat als ze in WebPartZoneBase zones worden geplaatst, dergelijke besturingselementen worden verpakt met een GenericWebPart besturingselement tijdens runtime en dit besturingselement de AuthorizationFilter eigenschap over neemt.
De tweede vereiste stap voor het maken van een filterscenario is het overschrijven van de IsAuthorized(Type, String, String, Boolean) methode of het maken van een gebeurtenis-handler voor de AuthorizeWebPart gebeurtenis. In deze methoden kan een ontwikkelaar de AuthorizationFilter eigenschap controleren en als de waarde aangeeft dat het besturingselement niet mag worden geautoriseerd, zorgt de ontwikkelaar ervoor dat de IsAuthorized methode een waarde retourneert van false.
Note
Zie de onderwerpen voor de overbelasting van de methode voor codevoorbeelden en een beschrijving van het instellen van een aangepast filterscenario met behulp van de IsAuthorized methode.
IsAuthorized(WebPart)
Voert de eerste stappen uit om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
public:
bool IsAuthorized(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public bool IsAuthorized(System.Web.UI.WebControls.WebParts.WebPart webPart);
member this.IsAuthorized : System.Web.UI.WebControls.WebParts.WebPart -> bool
Public Function IsAuthorized (webPart As WebPart) As Boolean
Parameters
- webPart
- WebPart
Een WebPart of ander serverbesturingselement dat wordt gecontroleerd op autorisatie.
Retouren
Een Booleaanse waarde die aangeeft of webPart deze kan worden toegevoegd aan een pagina.
Uitzonderingen
webPart is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de IsAuthorized(WebPart) methode aanroept vanuit uw code om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
Het codevoorbeeld heeft drie delen:
Een aangepast besturingselement WebPartManager waarmee de IsAuthorized methode wordt overschreven.
Een webpagina waarmee een filter voor een WebPart besturingselement wordt gemaakt.
Een uitleg over het uitvoeren van het codevoorbeeld.
In dit codevoorbeeld wordt een aangepast besturingselement WebPartManager gebruikt waarmee de IsAuthorized(Type, String, String, Boolean) overbelastingsmethode wordt overschreven om aangepaste verwerking van de AuthorizationFilter eigenschap te bieden. Met dit besturingselement wordt gecontroleerd op een eigenschapswaarde van admin en, als de waarde aanwezig is, wordt het besturingselement geautoriseerd. Als een besturingselement een andere waarde heeft, is het niet gemachtigd; besturingselementen zonder de waarde van de eigenschap zijn ook geautoriseerd, omdat ze geacht worden geen deel uit te maken van het filterscenario.
Als u dit codevoorbeeld wilt uitvoeren, moet u deze broncode compileren. U kunt deze expliciet compileren en de resulterende assembly in de map Bin van uw website of de globale assemblycache plaatsen. U kunt de broncode ook in de map App_Code van uw site plaatsen, waar deze dynamisch wordt gecompileerd tijdens runtime. In dit codevoorbeeld wordt de dynamische compileermethode gebruikt. Zie Walkthrough: Een aangepast webserverbeheer ontwikkelen en gebruiken voor een overzicht van hoe u compileert.
using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS.Controls
{
public class MyManagerAuthorize : WebPartManager
{
public override bool IsAuthorized(Type type, string path, string authorizationFilter, bool isShared)
{
if (!String.IsNullOrEmpty(authorizationFilter))
{
if (authorizationFilter == "admin")
return true;
else
return false;
}
else
{
return true;
}
}
}
}
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyManagerAuthorize
Inherits WebPartManager
Public Overrides Function IsAuthorized(ByVal type As Type, _
ByVal path As String, ByVal authorizationFilter As String, _
ByVal isShared As Boolean) As Boolean
If Not String.IsNullOrEmpty(authorizationFilter) Then
If authorizationFilter = "admin" Then
Return True
Else
Return False
End If
Else
Return True
End If
End Function
End Class
End Namespace
In het tweede deel van het codevoorbeeld wordt een filter gemaakt dat mogelijk een besturingselement kan uitsluiten. De volgende webpagina bevat drie ASP.NET serverbesturingselementen in een element <asp:webpartzone>. U ziet dat de eerste en tweede besturingselementen hun AuthorizationFilter eigenschappen hebben ingesteld op verschillende waarden en dat de derde de eigenschap niet toewijst. Deze autorisatiewaarde kan tijdens runtime worden gecontroleerd en het besturingselement kan worden toegevoegd aan de pagina als het filter voldoet aan criteria die door de ontwikkelaar zijn ingesteld. U ziet ook dat in de Page_Load methode de code de IsAuthorized(WebPart) methode aanroept om te bepalen of elk van de besturingselementen is geautoriseerd, en zo ja, wordt de eigenschap van ExportMode elk besturingselement ingesteld.
<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls"
TagPrefix="aspSample"%>
<!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 Page_Load(object sender, EventArgs e)
{
foreach (WebPart part in mgr1.WebParts)
{
if (mgr1.IsAuthorized(part))
part.ExportMode = WebPartExportMode.All;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<aspSample:MyManagerAuthorize ID="mgr1" runat="server" />
<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"
AuthorizationFilter="user" />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls"
TagPrefix="aspSample"%>
<!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 Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim part As WebPart
For Each part In mgr1.WebParts
If mgr1.IsAuthorized(part) Then
part.ExportMode = WebPartExportMode.All
End If
Next
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<aspSample:MyManagerAuthorize ID="mgr1" runat="server" />
<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"
AuthorizationFilter="user" />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
Houd er rekening mee dat u voor het codevoorbeeld een instelling in het Web.config-bestand moet toevoegen om beschrijvingsbestanden van webonderdelen te kunnen exporteren. Zorg ervoor dat u een Web.config bestand in dezelfde map hebt als de webpagina voor dit codevoorbeeld. Controleer in de <system.web> sectie of er een <webParts> element is met een enableExport kenmerk ingesteld op true, zoals in de volgende markeringen.
<webParts enableExport="true">
...
</webParts>
Nadat u de pagina in een browser hebt geladen, moet u er rekening mee houden dat het eerste besturingselement wordt weergegeven, omdat dit overeenkomt met de criteria in de overschreven methode. Het tweede besturingselement wordt niet toegevoegd aan de pagina, omdat het wordt uitgesloten door het filter. Het derde besturingselement wordt ook toegevoegd, omdat er geen AuthorizationFilter eigenschappen zijn ingesteld. Als u op het menupictogram werkwoorden in de titelbalk van een van beide besturingselementen klikt, kunnen ze beide worden geëxporteerd omdat hun respectieve ExportMode eigenschapswaarden zijn toegewezen.
Opmerkingen
De IsAuthorized methode is de eerste methode die wordt aangeroepen door het besturingselement webonderdelen dat is ingesteld om de autorisatie voor een WebPart besturingselement te controleren. Het accepteert webPart als parameter en begint een proces dat uiteindelijk bepaalt of het besturingselement wordt toegevoegd aan een pagina. Roep deze methode rechtstreeks aan vanuit uw code wanneer u wilt bepalen of een bepaald besturingselement is geautoriseerd.
Met deze methode worden de eerste taken uitgevoerd om te bepalen of het besturingselement van de WebPart klasse overneemt of een GenericWebPart besturingselement is en, als dat het is, welk type onderliggend besturingselement het bevat. Om de autorisatietaak te voltooien, wordt de IsAuthorized(Type, String, String, Boolean) overbelastingsmethode aangeroepen.
Notities voor bellers
Deze methode wordt rechtstreeks vanuit uw code aangeroepen. Als u meer controle wilt krijgen over het autorisatieproces, kunt u de IsAuthorized(Type, String, String, Boolean) overbelastingsmethode overschrijven.
Zie ook
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- ASP.NET besturingselementen voor webonderdelen
Van toepassing op
IsAuthorized(Type, String, String, Boolean)
Voert de laatste stappen uit om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
public:
virtual bool IsAuthorized(Type ^ type, System::String ^ path, System::String ^ authorizationFilter, bool isShared);
public virtual bool IsAuthorized(Type type, string path, string authorizationFilter, bool isShared);
abstract member IsAuthorized : Type * string * string * bool -> bool
override this.IsAuthorized : Type * string * string * bool -> bool
Public Overridable Function IsAuthorized (type As Type, path As String, authorizationFilter As String, isShared As Boolean) As Boolean
Parameters
- path
- String
Het relatieve toepassingspad naar het bronbestand voor het besturingselement dat wordt geautoriseerd, als het besturingselement een gebruikersbesturingselement is.
- authorizationFilter
- String
Een willekeurige tekenreekswaarde die is toegewezen aan de AuthorizationFilter eigenschap van een WebPart besturingselement, die wordt gebruikt om te autoriseren of een besturingselement kan worden toegevoegd aan een pagina.
- isShared
- Boolean
Geeft aan of het besturingselement dat wordt gecontroleerd op autorisatie een gedeeld besturingselement is, wat betekent dat het zichtbaar is voor veel of alle gebruikers van de toepassing en IsShared de eigenschapswaarde is ingesteld op true.
Retouren
Een Booleaanse waarde die aangeeft of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
Uitzonderingen
type is null.
type is een gebruikersbeheer en path is een null lege tekenreeks ("").
– of –
type is geen gebruikersbeheer en path heeft er een waarde aan toegewezen.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de IsAuthorized methode overschrijft om te bepalen of een besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
De eerste stap is het maken van een filter dat mogelijk een besturingselement kan uitsluiten. De volgende webpagina bevat drie ASP.NET serverbesturingselementen in een element <asp:webpartzone>. U ziet dat de eerste en tweede besturingselementen hun AuthorizationFilter eigenschappen hebben ingesteld op verschillende waarden en dat de derde de eigenschap niet toewijst. Deze autorisatiewaarde kan tijdens runtime worden gecontroleerd en het besturingselement kan worden toegevoegd aan de pagina als het filter voldoet aan criteria die door de ontwikkelaar zijn ingesteld.
<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls"
TagPrefix="aspSample"%>
<!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 Page_Load(object sender, EventArgs e)
{
foreach (WebPart part in mgr1.WebParts)
{
if (mgr1.IsAuthorized(part))
part.ExportMode = WebPartExportMode.All;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<aspSample:MyManagerAuthorize ID="mgr1" runat="server" />
<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"
AuthorizationFilter="user" />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls"
TagPrefix="aspSample"%>
<!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 Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim part As WebPart
For Each part In mgr1.WebParts
If mgr1.IsAuthorized(part) Then
part.ExportMode = WebPartExportMode.All
End If
Next
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<aspSample:MyManagerAuthorize ID="mgr1" runat="server" />
<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"
AuthorizationFilter="user" />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
De tweede stap is het overschrijven van de IsAuthorized(Type, String, String, Boolean) methode en het maken van aangepaste verwerking voor autorisatiefilters. Houd er rekening mee dat de code eerst controleert of de eigenschap een waarde heeft, zodat elk besturingselement dat de AuthorizationFilter eigenschap niet toewijst, automatisch wordt toegevoegd. Als een besturingselement een filter heeft, retourneert true de code alleen als de filterwaarde gelijk is aan admin. Dit demonstreert een eenvoudig mechanisme dat u kunt gebruiken voor het weergeven van bepaalde besturingselementen voor bepaalde gebruikers, afhankelijk van hun rol. Hoewel een volledig voorbeeld van het gebruik van rollen buiten het bereik van dit onderwerp valt, kunt u dezelfde logica gebruiken als de overschreven methode in dit codevoorbeeld, behalve dat u kunt controleren of de huidige gebruiker een rol heeft die overeenkomt met de autorisatiefilterwaarde en vervolgens het besturingselement alleen voor die gebruiker toevoegen. Hierdoor kunt u pagina's maken waarin sommige gebruikers alle besturingselementen zouden zien en andere gebruikers alleen geselecteerde besturingselementen zouden zien. Dit is hoe de logica die het filter controleert, eruit kan zien als u rollen hebt gebruikt:
If Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter) Then
return True
Else
return False
End If
if(Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter))
return true;
else
return false;
Als u het codevoorbeeld wilt uitvoeren, moet u deze broncode compileren. U kunt deze expliciet compileren en de resulterende assembly in de map Bin van uw website of de globale assemblycache plaatsen. U kunt de broncode ook in de map App_Code van uw site plaatsen, waar deze dynamisch wordt gecompileerd tijdens runtime. In dit codevoorbeeld wordt de dynamische compileermethode gebruikt. Zie Walkthrough: Een aangepast webserverbeheer ontwikkelen en gebruiken voor een overzicht van hoe u compileert.
using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Samples.AspNet.CS.Controls
{
public class MyManagerAuthorize : WebPartManager
{
public override bool IsAuthorized(Type type, string path, string authorizationFilter, bool isShared)
{
if (!String.IsNullOrEmpty(authorizationFilter))
{
if (authorizationFilter == "admin")
return true;
else
return false;
}
else
{
return true;
}
}
}
}
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyManagerAuthorize
Inherits WebPartManager
Public Overrides Function IsAuthorized(ByVal type As Type, _
ByVal path As String, ByVal authorizationFilter As String, _
ByVal isShared As Boolean) As Boolean
If Not String.IsNullOrEmpty(authorizationFilter) Then
If authorizationFilter = "admin" Then
Return True
Else
Return False
End If
Else
Return True
End If
End Function
End Class
End Namespace
Nadat u de pagina in een browser hebt geladen, moet u er rekening mee houden dat het eerste besturingselement wordt weergegeven, omdat dit overeenkomt met de criteria in de overschreven methode. Het tweede besturingselement wordt niet toegevoegd aan de pagina, omdat de filterwaarde ervan wordt uitgesloten. Het derde besturingselement wordt toegevoegd, omdat er geen AuthorizationFilter eigenschappen zijn ingesteld. Als u de eigenschapswaarde op het tweede besturingselement wijzigt zodat deze overeenkomt met die van het eerste besturingselement en vervolgens de pagina opnieuw uitvoert, wordt het tweede besturingselement ook toegevoegd.
Opmerkingen
De IsAuthorized(Type, String, String, Boolean) overbelastingsmethode voert de laatste stappen uit om te bepalen of een besturingselement mag worden toegevoegd aan een pagina. De methode zorgt ervoor dat dit type een geldig type is en dat path alleen een waarde heeft als het besturingselement dat wordt gecontroleerd een gebruikersbesturingselement is. Vervolgens wordt de kritieke OnAuthorizeWebPart methode aangeroepen, waardoor de gebeurtenis wordt AuthorizeWebPart gegenereerd.
Notities voor overnemers
Deze methode kan worden overschreven door deze over te nemen van de WebPartManager klasse, als u extra verwerking wilt bieden bij het controleren van de autorisatie. U kunt de methode overschrijven om te controleren op bepaalde waarden in de authorizationFilter parameter en op basis van de waarde een Booleaanse waarde retourneren die bepaalt of het besturingselement wordt toegevoegd aan een pagina.
Voor paginaontwikkelaars die ook willen controleren op autorisatiefilters en aangepaste verwerking willen bieden, is er een optie om dit inline te doen op een .aspx-pagina, of in een bestand achter code, zonder dat u hoeft over te nemen van klassen. U kunt een alternatieve gebeurtenis-handler op de pagina declareren voor de OnAuthorizeWebPart(WebPartAuthorizationEventArgs) methode van het WebPartManager besturingselement. Zie de OnAuthorizeWebPart(WebPartAuthorizationEventArgs) methode voor meer informatie en een voorbeeld.
Zie ook
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- ASP.NET besturingselementen voor webonderdelen