Sdílet prostřednictvím


WebPart.AuthorizationFilter Vlastnost

Definice

Získá nebo nastaví libovolný řetězec k určení, zda je ovládací prvek WebPart oprávněn přidat na stránku.

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

Hodnota vlastnosti

Řetězec, který opravňuje ovládací prvek k přidání na webovou stránku. Výchozí hodnota je prázdný řetězec ("").

Atributy

Příklady

Následující příklad kódu ukazuje použití AuthorizationFilter vlastnosti. Ukazuje, jak nastavit obslužnou rutinu AuthorizeWebPart vlastní metody pro událost, aby obslužná rutina mohla poskytnout vlastní filtrovací kód pro metodu OnAuthorizeWebPart . Tento příklad by byl typickým způsobem, jak vývojář stránky poskytnout scénář filtrování a autorizaci ovládacích WebPart prvků, které se mají přidat na stránku.

V kódu webové stránky si všimněte, že <asp:webpartmanager> element má OnAuthorizeWebPart atribut s přiřazeným názvem obslužné rutiny události. Tato metoda kontroluje, jestli ovládací prvky na stránce mají AuthorizationFilter hodnotu vlastnosti nastavenou na admin, a pokud ano, vrátí , truecož znamená, že budou autorizované a přidané na stránku.

Poznámka

Všimněte si, že ovládací prvky, které nemají přiřazenou žádnou hodnotu vlastnosti AuthorizationFilter , jsou přidány také, protože se předpokládá, že nejsou součástí scénáře filtrování. To by byl běžný přístup ve scénáři filtrování: některé ovládací prvky by se filtrovaly a jiné ne, protože se předpokládá, že jsou dostupné pro všechny uživatele.

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

Vzhledem k tomu, že nastavení uživatelů v rolích je nad rámec tohoto tématu, tento příklad kódu nekontroluje role uživatelů ve filtrování. Scénář filtrování ovládacích prvků podle rolí uživatelů ale bude pravděpodobně jedním z nejběžnějších použití této funkce filtrování. Pokud máte na webu role a chcete zkontrolovat role uživatelů v této metodě pro filtrování ovládacích prvků, bude metoda podobná následujícímu bloku kódu (oproti jednoduššímu přístupu v předchozím příkladu kódu, který nepoužívá role).

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

Poznámky

Sada ovládacích prvků webových částí neimplementuje žádné výchozí chování vlastnosti AuthorizationFilter . Vlastnost je však k dispozici, takže můžete přiřadit libovolnou řetězcovou hodnotu k vlastnímu WebPart ovládacímu prvku. Tuto vlastnost může ovládací prvek zkontrolovat WebPartManager během jeho AuthorizeWebPart události a určit, zda lze ovládací prvek přidat na stránku.

V některých případech AuthorizationFilter může být vlastnost použita s funkcí správce rolí ASP.NET, takže pokud je uživatel v určité roli a hodnota AuthorizationFilter řetězce vlastnosti splňuje určité podmínky nastavené vývojářem, lze ovládací prvek přidat. Tento přístup umožňuje vývojářům vytvářet vlastní zobrazení stránky na základě kombinace rolí a dalších kritérií autorizace, které určí.

Tuto vlastnost nelze nastavit pomocí motivů nebo šablon stylů. Další informace najdete v tématu ThemeableAttribute a ASP.NET motivy a vzhledy.

Rozsah přizpůsobení této vlastnosti je nastavený na Shared hodnotu a může být upraven pouze autorizovanými uživateli. Další informace najdete v tématu PersonalizableAttribute a Přehled přizpůsobení webových částí.

Poznámky pro dědice

Chcete-li použít tuto vlastnost, musíte vytvořit vlastní WebPartManager ovládací prvek a přepsat buď jeho OnAuthorizeWebPart(WebPartAuthorizationEventArgs) metodu, nebo její IsAuthorized(WebPart) metodu zpracovat kontrolu vlastnosti AuthorizationFilter .

Platí pro

Viz také