WebPart.AuthorizationFilter Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger en godtycklig sträng för att avgöra om en WebPart kontroll har behörighet att läggas till på en sida.
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
Egenskapsvärde
En sträng som tillåter att en kontroll läggs till på en webbsida. Standardvärdet är en tom sträng ("").
- Attribut
Exempel
Följande kodexempel visar hur egenskapen används AuthorizationFilter . Den visar hur du anger en anpassad metodhanterare för AuthorizeWebPart händelsen, så att hanteraren kan ange anpassad filtreringskod för OnAuthorizeWebPart metoden. Det här exemplet är ett vanligt sätt för en sidutvecklare att tillhandahålla ett filtreringsscenario och auktorisering av WebPart kontroller som ska läggas till på en sida.
Observera att elementet <asp:webpartmanager> har OnAuthorizeWebPart attributet med namnet på den händelsehanterare som tilldelats i webbsidekoden. Den här metoden kontrollerar om kontrollerna på sidan har sitt AuthorizationFilter egenskapsvärde inställt på admin, och i så fall returnerar true, vilket innebär att de kommer att auktoriseras och läggas till på sidan.
Note
Observera att kontroller som inte har något värde som tilldelats egenskapen också läggs till AuthorizationFilter , eftersom de antas inte vara en del av ett filtreringsscenario. Detta skulle vara en vanlig metod i ett filtreringsscenario: vissa kontroller skulle filtreras och andra skulle inte vara det, eftersom de antas vara tillgängliga för alla användare.
<%@ 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>
Eftersom det inte går att konfigurera användare i roller i det här avsnittet kontrollerar det här kodexemplet inte användarroller i filtreringen. Scenariot med filtreringskontroller enligt användarroller är dock sannolikt en av de vanligaste användningsområdena för den här filtreringsfunktionen. Om du har roller på webbplatsen och vill kontrollera användarroller i den här metoden för att filtrera kontroller, skulle metoden likna följande kodblock (jämfört med den enklare metoden i föregående kodexempel som inte använder roller).
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;
}
}
Kommentarer
Kontrolluppsättningen webbdelar implementerar inte något standardbeteende för AuthorizationFilter egenskapen. Egenskapen tillhandahålls dock så att du kan tilldela ett godtyckligt strängvärde till en anpassad WebPart kontroll. Den WebPartManager här egenskapen kan kontrolleras av kontrollen under händelsen AuthorizeWebPart för att avgöra om kontrollen kan läggas till på sidan.
I vissa fall kan egenskapen AuthorizationFilter användas med funktionen ASP.NET rollhanterare, så att om en användare har en viss roll och om strängvärdet för egenskapen AuthorizationFilter uppfyller vissa villkor som angetts av utvecklaren kan kontrollen läggas till. Med den här metoden kan utvecklare skapa anpassade vyer av en sida baserat på en kombination av roller och andra auktoriseringsvillkor som de anger.
Den här egenskapen kan inte anges med teman eller formatmallsteman. Mer information finns i ThemeableAttribute and ASP.NET Themes and Skins.
Anpassningsomfånget för den här egenskapen är inställt på Shared och kan endast ändras av behöriga användare. Mer information finns i PersonalizableAttributeoch Översikt över anpassning av webbdelar.
Anteckningar till arvingar
Om du vill använda den här egenskapen måste du skapa en anpassad WebPartManager kontroll och åsidosätta antingen dess OnAuthorizeWebPart(WebPartAuthorizationEventArgs) metod eller dess IsAuthorized(WebPart) metod för att hantera kontrollen av AuthorizationFilter egenskapen.