WebPart.AuthorizationFilter Propriété

Définition

Obtient ou définit une chaîne arbitraire pour déterminer si un contrôle WebPart 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 un contrôle à être ajouté à 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 avec le nom du gestionnaire d’événements qui lui est attribué. Cette méthode vérifie si la valeur de propriété AuthorizationFilter des contrôles de la page est définie adminsur , et si c’est le cas, retourne true, ce qui signifie qu’ils seront autorisés et ajoutés à la page.

Notes

Notez que les contrôles qui n’ont aucune valeur affectée à la AuthorizationFilter propriété sont également ajoutés, car ils sont supposés ne pas faire partie d’un scénario de filtrage. Il s’agit 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 présumés 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 case activée 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 case activée rôles d’utilisateur dans cette méthode pour filtrer les contrôles, la méthode ressemblerait au bloc de code suivant (contrairement à l’approche plus simple de 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 pour 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 rôle donné 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 les thèmes ou les thèmes de feuille de style. Pour plus d’informations, consultez ThemeableAttribute et ASP.NET thèmes et skins.

L’étendue de personnalisation de cette propriété est définie Shared sur et ne peut être modifiée que par les utilisateurs autorisés. Pour plus d’informations, consultez PersonalizableAttributeVue 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 les case activée de la AuthorizationFilter propriété.

S’applique à

Voir aussi