Partage via


WebPart.AuthorizationFilter Propriété

Définition

Obtient ou définit une chaîne arbitraire pour déterminer si un WebPart contrôle est autorisé à être ajouté à une page.

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

Valeur de propriété

Chaîne qui autorise l’ajout d’un contrôle à une page Web. La valeur par défaut est une chaîne vide ("").

Attributs

Exemples

L’exemple de code suivant illustre l’utilisation de la AuthorizationFilter propriété. Il montre comment définir un gestionnaire de méthode personnalisé pour l’événement AuthorizeWebPart , afin que le gestionnaire puisse fournir du code de filtrage personnalisé pour la OnAuthorizeWebPart méthode. Cet exemple serait un moyen classique pour un développeur de pages de fournir un scénario de filtrage et l’autorisation des WebPart contrôles à ajouter à une page.

Dans le code de la page Web, notez que l’élément <asp:webpartmanager> a l’attribut OnAuthorizeWebPart portant le nom du gestionnaire d’événements qui lui est attribué. Cette méthode vérifie si les contrôles de la page ont leur AuthorizationFilter valeur de propriété définie adminsur , et le cas échéant, retourne true, ce qui signifie qu’ils seront autorisés et ajoutés à la page.

Note

Notez que les contrôles qui n’ont aucune valeur affectée à la AuthorizationFilter propriété sont également ajoutés, car ils ne font pas partie d’un scénario de filtrage. Il s’agirait d’une approche courante dans un scénario de filtrage : certains contrôles seraient filtrés et d’autres ne le seraient pas, car ils sont supposés être disponibles pour tous les utilisateurs.

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

Étant donné que la configuration des utilisateurs dans des rôles dépasse la portée de cette rubrique, cet exemple de code ne vérifie pas les rôles d’utilisateur dans le filtrage. Toutefois, le scénario de filtrage des contrôles en fonction des rôles d’utilisateur est susceptible d’être l’une des utilisations les plus courantes de cette fonctionnalité de filtrage. Si vous avez des rôles sur votre site et que vous souhaitez vérifier les rôles utilisateur dans cette méthode pour filtrer les contrôles, la méthode ressemble au bloc de code suivant (par opposition à l’approche plus simple dans l’exemple de code précédent qui n’utilise pas de rôles).

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;
  }
}

Remarques

Le jeu de contrôles WebPart n’implémente aucun comportement par défaut pour la AuthorizationFilter propriété. Toutefois, la propriété est fournie afin que vous puissiez affecter une valeur de chaîne arbitraire à un contrôle personnalisé WebPart ; cette propriété peut être vérifiée par le WebPartManager contrôle pendant son AuthorizeWebPart événement pour déterminer si le contrôle peut être ajouté à la page.

Dans certains cas, la AuthorizationFilter propriété peut être utilisée avec la fonctionnalité de gestionnaire de rôles ASP.NET, de sorte que si un utilisateur est dans un certain rôle et si la valeur de chaîne de la AuthorizationFilter propriété répond à certaines conditions définies par le développeur, le contrôle peut être ajouté. Cette approche permet aux développeurs de créer des vues personnalisées d’une page en fonction d’une combinaison de rôles et d’autres critères d’autorisation qu’ils spécifient.

Cette propriété ne peut pas être définie par des thèmes ou des thèmes de feuille de style. Pour plus d’informations, consultez ThemeableAttribute et ASP.NET Thèmes et peaux.

L’étendue de personnalisation de cette propriété est définie Shared et ne peut être modifiée que par les utilisateurs autorisés. Pour plus d’informations, consultez PersonalizableAttribute et Vue d’ensemble de la personnalisation des composants WebPart.

Notes pour les héritiers

Pour utiliser cette propriété, vous devez créer un contrôle personnalisé WebPartManager et remplacer sa OnAuthorizeWebPart(WebPartAuthorizationEventArgs) méthode ou sa IsAuthorized(WebPart) méthode pour gérer la vérification de la AuthorizationFilter propriété.

S’applique à

Voir aussi