WebPartManager.AuthorizeWebPart Událost
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í.
Vyvolá se, IsAuthorized když je volána metoda k určení, zda WebPart lze na stránku přidat ovládací prvek nebo server.
public:
event System::Web::UI::WebControls::WebParts::WebPartAuthorizationEventHandler ^ AuthorizeWebPart;
public event System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler AuthorizeWebPart;
member this.AuthorizeWebPart : System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler
Public Custom Event AuthorizeWebPart As WebPartAuthorizationEventHandler
Event Type
Příklady
Následující příklad kódu ukazuje, jak nastavit vlastní obslužnou rutinu AuthorizeWebPart události pro událost, která automaticky přepíše výchozí OnAuthorizeWebPart metodu.
Kód v metodě zkontroluje mgr1_AuthorizeWebPart
, jestli mají ovládací prvky na stránce nastavené odpovídající AuthorizationFilter hodnoty vlastností, user
a pokud ano, vrátí true
, což znamená, že budou autorizovány a přidány na stránku. Předpokládá se, že výchozí přístup je povolit uživatelům zobrazení ovládacích prvků se stránkou v oboru přizpůsobení uživatele. Všimněte si ale, že v příkladu má jeden z ovládacích prvků hodnotu AuthorizationFilter vlastnosti nastavenou na admin
. Vývojáři můžou tento filtr umístit na specializovaný ovládací prvek, který byl navržen tak, aby ho viděli jenom správci. Tento ovládací prvek během události neprojde kontrolou AuthorizeWebPart autorizace a nezobrazí se. Všimněte si, že ovládací prvky, které nemají nastavenou vlastnost, jsou zobrazeny také; Předpokládá se, že nejsou součástí scénáře filtrování, protože jejich AuthorizationFilter vlastnosti nejsou nastaveny.
<%@ 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>
Poznámky
Událost AuthorizeWebPart nastane při každém WebPart přidání ovládacího prvku na stránku. Existuje několik běžných scénářů, kdy je možné ovládací prvek přidat na stránku. Úplný popis najdete v části Poznámky pro metodu IsAuthorized . Při přidání ovládacího prvku je nutné zkontrolovat, zda byla nastavena jeho AuthorizationFilter vlastnost, a pokud ano, zda má ovládací prvek oprávnění k přidání na stránku.
Vývojáři můžou pro AuthorizeWebPart událost vytvořit obslužné rutiny událostí, které poskytují filtrování ovládacích prvků. Pokud hodnota vlastnosti ovládacího prvku AuthorizationFilter nesplňuje kritéria v kódu obslužné rutiny události, ovládací prvek se na stránku nepřidá.