WebPart.AuthorizationFilter Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví libovolný řetězec k určení, zda WebPart je ovládací prvek autorizovaný k přidání 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ý autorizuje přidání ovládacího prvku 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 vlastní obslužnou rutinu AuthorizeWebPart metody pro událost, aby obslužná rutina mohla poskytnout vlastní kód filtrování 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 názvem obslužné rutiny události přiřazena k němu. Tato metoda zkontroluje, zda ovládací prvky na stránce mají nastavenou AuthorizationFilter hodnotu adminvlastnosti , a pokud ano, vrátí true, což znamená, že budou autorizovány a přidány na stránku.
Poznámka:
Všimněte si, že ovládací prvky, které nemají přiřazenou žádnou hodnotu k AuthorizationFilter vlastnosti, 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é by nebyly, protože se předpokládá, že budou 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ů je ale 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ě k filtrování ovládacích prvků, bude metoda vypadat podobně jako následující blok 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 částí webových částí neimplementuje žádné výchozí chování vlastnosti AuthorizationFilter . Tato vlastnost je však poskytována, takže můžete přiřadit libovolnou řetězcovou hodnotu vlastnímu ovládacímu WebPart prvku. Tuto vlastnost může ovládací prvek během události AuthorizeWebPart zkontrolovatWebPartManager, 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 pokud řetězcová hodnota AuthorizationFilter 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 motivy ani motivy šablon stylů. Další informace najdete v tématu ThemeableAttribute a ASP.NET Motivy a skiny.
Rozsah přizpůsobení této vlastnosti je nastaven Shared a lze ho upravit 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 jeho OnAuthorizeWebPart(WebPartAuthorizationEventArgs) metodu nebo jeho IsAuthorized(WebPart) metodu pro zpracování kontroly AuthorizationFilter vlastnosti.