WebPart.AuthorizationFilter Eigenschap

Definitie

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.

Van toepassing op

Zie ook