WebPart.AuthorizationFilter Eigenschap
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.
Hiermee haalt u een willekeurige tekenreeks op of stelt u deze in om te bepalen of een WebPart besturingselement is gemachtigd om aan een pagina te worden toegevoegd.
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
Waarde van eigenschap
Een tekenreeks waarmee een besturingselement kan worden toegevoegd aan een webpagina. De standaardwaarde is een lege tekenreeks ("").
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe de AuthorizationFilter eigenschap wordt gebruikt. Het laat zien hoe u een aangepaste methode-handler instelt voor de AuthorizeWebPart gebeurtenis, zodat de handler aangepaste filtercode voor de OnAuthorizeWebPart methode kan opgeven. Dit voorbeeld is een typische manier voor een paginaontwikkelaar om een filterscenario en autorisatie van WebPart besturingselementen te bieden die aan een pagina moeten worden toegevoegd.
In de code van de webpagina ziet u dat het <asp:webpartmanager> element het OnAuthorizeWebPart kenmerk heeft met de naam van de gebeurtenis-handler die eraan is toegewezen. Met deze methode wordt gecontroleerd of de besturingselementen op de pagina hun AuthorizationFilter eigenschapswaarde hebben ingesteld adminop , en zo ja, retourneert true, wat betekent dat ze worden geautoriseerd en toegevoegd aan de pagina.
Note
Houd er rekening mee dat besturingselementen waaraan geen waarde is toegewezen, AuthorizationFilter ook worden toegevoegd, omdat wordt ervan uitgegaan dat ze geen deel uitmaken van een filterscenario. Dit zou een algemene benadering zijn in een filterscenario: sommige besturingselementen zouden worden gefilterd en andere niet, omdat ze vermoedelijk beschikbaar zijn voor alle gebruikers.
<%@ 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>
Omdat het instellen van gebruikers in rollen buiten het bereik van dit onderwerp valt, controleert dit codevoorbeeld geen gebruikersrollen in het filteren. Het scenario voor het filteren van besturingselementen op basis van gebruikersrollen is echter waarschijnlijk een van de meest voorkomende toepassingen van deze filterfunctie. Als u rollen op uw site hebt en u gebruikersrollen in deze methode wilt controleren om besturingselementen te filteren, lijkt de methode op het volgende codeblok (versus de eenvoudigere benadering in het voorgaande codevoorbeeld waarin geen rollen worden gebruikt).
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;
}
}
Opmerkingen
De besturingsset webonderdelen implementeert geen standaardgedrag voor de AuthorizationFilter eigenschap. De eigenschap wordt echter opgegeven, zodat u een willekeurige tekenreekswaarde kunt toewijzen aan een aangepast besturingselement WebPart . Deze eigenschap kan tijdens de gebeurtenis worden gecontroleerd door het WebPartManager besturingselement AuthorizeWebPart om te bepalen of het besturingselement aan de pagina kan worden toegevoegd.
In sommige gevallen kan de eigenschap AuthorizationFilter worden gebruikt met de functie ASP.NET rolbeheer, zodat als een gebruiker een bepaalde rol heeft en als de tekenreekswaarde van de eigenschap AuthorizationFilter aan bepaalde voorwaarden voldoet die door de ontwikkelaar zijn ingesteld, het besturingselement kan worden toegevoegd. Met deze aanpak kunnen ontwikkelaars aangepaste weergaven van een pagina maken op basis van een combinatie van rollen en andere autorisatiecriteria die ze opgeven.
Deze eigenschap kan niet worden ingesteld op thema's of opmaakmodellen. Zie ThemeableAttribute en ASP.NET Thema's en skins voor meer informatie.
Het persoonlijke bereik van deze eigenschap is ingesteld op Shared en kan alleen worden gewijzigd door geautoriseerde gebruikers. Zie en Overzicht van persoonlijke instellingen voor webonderdelen voor meer informatiePersonalizableAttribute.
Notities voor overnemers
Als u deze eigenschap wilt gebruiken, moet u een aangepast besturingselement WebPartManager maken en de OnAuthorizeWebPart(WebPartAuthorizationEventArgs) bijbehorende methode of IsAuthorized(WebPart) methode overschrijven om de controle voor de AuthorizationFilter eigenschap af te handelen.