WebPart.AuthorizationFilter Proprietà

Definizione

Ottiene o imposta una stringa arbitraria per determinare se è stata autorizzata l'aggiunta di un controllo WebPart a una pagina.Gets or sets an arbitrary string to determine whether a WebPart control is authorized to be added to a 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; }
member this.AuthorizationFilter : string with get, set
Public Overridable Property AuthorizationFilter As String

Valore della proprietà

Stringa che autorizza l'aggiunta di un controllo a una pagina Web.A string that authorizes a control to be added to a Web page. Il valore predefinito è una stringa vuota ("").The default value is an empty string ("").

Attributi

Esempi

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo della proprietà AuthorizationFilter.The following code example demonstrates the use of the AuthorizationFilter property. Viene illustrato come impostare un gestore di metodo personalizzato per l'evento AuthorizeWebPart, in modo che il gestore possa fornire codice di filtro personalizzato per il metodo OnAuthorizeWebPart.It shows how to set a custom method handler for the AuthorizeWebPart event, so that the handler can provide custom filtering code for the OnAuthorizeWebPart method. Questo esempio è un modo tipico per uno sviluppatore di pagine di fornire uno scenario di filtro e l'autorizzazione di WebPart controlli da aggiungere a una pagina.This example would be a typical way for a page developer to provide a filtering scenario and authorization of WebPart controls to be added to a page.

Nel codice della pagina Web si noti che l'elemento <asp:webpartmanager> dispone dell'attributo OnAuthorizeWebPart con il nome del gestore eventi assegnato.In the Web page code, notice that the <asp:webpartmanager> element has the OnAuthorizeWebPart attribute with the name of the event handler assigned to it. Questo metodo controlla se i controlli nella pagina hanno il valore della proprietà AuthorizationFilter impostato su admine, in caso affermativo, restituisce true, il che significa che saranno autorizzati e aggiunti alla pagina.This method checks whether the controls on the page have their AuthorizationFilter property value set to admin, and if so, returns true, which means that they will be authorized and added to the page.

Nota

Si noti che anche i controlli che non hanno alcun valore assegnato alla proprietà AuthorizationFilter vengono aggiunti, perché si presuppone che non facciano parte di uno scenario di filtro.Note that controls that do not have any value assigned to the AuthorizationFilter property are added as well, because they are assumed not to be part of a filtering scenario. Si tratta di un approccio comune in uno scenario di filtro: alcuni controlli verrebbero filtrati e altri non sarebbero, perché si presume che siano disponibili per tutti gli utenti.This would be a common approach in a filtering scenario: some controls would be filtered, and others would not be, because they are presumed to be available for all users.

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

Poiché la configurazione degli utenti nei ruoli esula dall'ambito di questo argomento, in questo esempio di codice non vengono verificati i ruoli utente nel filtro.Because setting up users in roles is beyond the scope of this topic, this code example does not check user roles in the filtering. Tuttavia, lo scenario di filtro dei controlli in base ai ruoli utente è probabilmente uno degli usi più comuni di questa funzionalità di filtro.However, the scenario of filtering controls according to user roles is likely to be one of the most common uses of this filtering feature. Se si dispone di ruoli nel sito e si desidera controllare i ruoli utente in questo metodo per filtrare i controlli, il metodo sarà simile al blocco di codice seguente (rispetto all'approccio più semplice nell'esempio di codice precedente che non utilizza i ruoli).If you have roles on your site, and you want to check user roles in this method to filter controls, the method would resemble the following code block (versus the simpler approach in the preceding code example that does not use roles).

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

Commenti

Il set di controlli Web part non implementa alcun comportamento predefinito per la proprietà AuthorizationFilter.The Web Parts control set does not implement any default behavior for the AuthorizationFilter property. Tuttavia, la proprietà viene specificata in modo che sia possibile assegnare un valore stringa arbitrario a un controllo WebPart personalizzato; Questa proprietà può essere controllata dal controllo WebPartManager durante il relativo evento AuthorizeWebPart per determinare se il controllo può essere aggiunto alla pagina.However, the property is provided so that you can assign an arbitrary string value to a custom WebPart control; this property can be checked by the WebPartManager control during its AuthorizeWebPart event to determine whether the control can be added to the page.

In alcuni casi, è possibile utilizzare la proprietà AuthorizationFilter con la funzionalità di gestione dei ruoli ASP.NET, in modo che se un utente si trova in un determinato ruolo e il valore stringa della proprietà AuthorizationFilter soddisfi determinate condizioni impostate dallo sviluppatore, è possibile aggiungere il controllo.In some cases, the AuthorizationFilter property might be used with the ASP.NET role manager feature, so that if a user is in a certain role, and if the string value of the AuthorizationFilter property meets certain conditions set by the developer, then the control can be added. Questo approccio consente agli sviluppatori di creare visualizzazioni personalizzate di una pagina in base a una combinazione di ruoli e altri criteri di autorizzazione specificati.This approach allows developers to create custom views of a page based on a combination of roles and other authorization criteria that they specify.

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile.This property cannot be set by themes or style sheet themes. Per ulteriori informazioni, vedere i temi e le interfaccedi ThemeableAttribute e ASP.NET.For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

L'ambito di personalizzazione di questa proprietà è impostato su Shared e può essere modificato solo da utenti autorizzati.The personalization scope of this property is set to Shared and can be modified only by authorized users. Per ulteriori informazioni, vedere PersonalizableAttribute e Web part Cenni preliminari sulla personalizzazione.For more information, see PersonalizableAttribute and Web Parts Personalization Overview.

Note per gli eredi

Per utilizzare questa proprietà, è necessario creare un controllo WebPartManager personalizzato ed eseguire l'override del relativo metodo OnAuthorizeWebPart(WebPartAuthorizationEventArgs) o del relativo metodo IsAuthorized(WebPart) per gestire il controllo della proprietà AuthorizationFilter.To use this property, you must create a custom WebPartManager control, and override either its OnAuthorizeWebPart(WebPartAuthorizationEventArgs) method or its IsAuthorized(WebPart) method to handle the check for the AuthorizationFilter property.

Si applica a

Vedi anche