WebPart.AuthorizationFilter Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimin sayfaya eklenme yetkisi olup olmadığını belirlemek için rastgele bir WebPart dize alır veya ayarlar.
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
Özellik Değeri
Denetimin Web sayfasına eklenmesini yetkileyen dize. Varsayılan değer boş bir dizedir ("").
- Öznitelikler
Örnekler
Aşağıdaki kod örneği özelliğinin AuthorizationFilter kullanımını gösterir. İşleyicinin AuthorizeWebPart yöntem için özel filtreleme kodu sağlayabilmesi için olay için özel bir yöntem işleyicisinin OnAuthorizeWebPart nasıl ayarlanacağı gösterilir. Bu örnek, bir sayfa geliştiricisinin sayfaya eklenecek denetimleri filtreleme senaryosu ve yetkilendirmesi WebPart sağlaması için tipik bir yoldur.
Web sayfası kodunda, öğesinin <asp:webpartmanager> kendisine atanmış olay işleyicisinin adıyla özniteliğine sahip OnAuthorizeWebPart olduğuna dikkat edin. Bu yöntem, sayfadaki AuthorizationFilter denetimlerin özellik değerinin olarak ayarlanıp ayarlanmadığını admindenetler ve ayarlıysa, döndürür true. Bu, yetkilendirilecekleri ve sayfaya eklenecekleri anlamına gelir.
Uyarı
Özelliğe herhangi bir değer atanmamış denetimlerin AuthorizationFilter de eklendiğini unutmayın, çünkü bunların bir filtreleme senaryosunun parçası olmadığı varsayılır. Bu, bir filtreleme senaryosunda yaygın bir yaklaşım olacaktır: bazı denetimler filtrelenir ve diğerleri filtrelenmez, çünkü bunların tüm kullanıcılar için kullanılabilir olduğu varsayılır.
<%@ 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>
Rollerde kullanıcıları ayarlamak bu konunun kapsamı dışında olduğundan, bu kod örneği filtrelemedeki kullanıcı rollerini denetlemez. Ancak, denetimleri kullanıcı rollerine göre filtreleme senaryosu, bu filtreleme özelliğinin en yaygın kullanımlarından biri olabilir. Sitenizde rolleriniz varsa ve denetimleri filtrelemek için bu yöntemdeki kullanıcı rollerini denetlemek istiyorsanız, yöntem aşağıdaki kod bloğuna benzer (önceki kod örneğinde rolleri kullanmayan daha basit bir yaklaşıma karşılık).
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;
}
}
Açıklamalar
Web Bölümleri denetim kümesi özelliği için AuthorizationFilter varsayılan bir davranış uygulamaz. Ancak özelliği, özel WebPart bir denetime rastgele bir dize değeri atayabilmeniz için sağlanır; bu özellik, denetimin WebPartManager sayfaya eklenip eklenemeyeceğini belirlemek için olayı sırasında AuthorizeWebPart denetim tarafından denetlenebilir.
Bazı durumlarda, AuthorizationFilter özellik ASP.NET rol yöneticisi özelliğiyle birlikte kullanılabilir, böylece bir kullanıcı belirli bir roldeyse ve özelliğin AuthorizationFilter dize değeri geliştirici tarafından ayarlanan belirli koşulları karşılıyorsa denetim eklenebilir. Bu yaklaşım, geliştiricilerin bir sayfanın, belirttikleri rollerin ve diğer yetkilendirme ölçütlerinin birleşimine göre özel görünümler oluşturmasına olanak tanır.
Bu özellik temalar veya stil sayfası temaları tarafından ayarlanamaz. Daha fazla bilgi için bkz ThemeableAttribute . Temalar ve Dış Görünümler'i ASP.NET.
Bu özelliğin kişiselleştirme kapsamı olarak Shared ayarlanır ve yalnızca yetkili kullanıcılar tarafından değiştirilebilir. Daha fazla bilgi için bkz PersonalizableAttribute . ve Web Bölümleri Kişiselleştirmeye Genel Bakış.
Devralanlara Notlar
Bu özelliği kullanmak için özel WebPartManager bir denetim oluşturmanız ve özelliğinin denetimini işlemek için AuthorizationFilter yöntemini veya IsAuthorized(WebPart) yöntemini geçersiz kılmanız OnAuthorizeWebPart(WebPartAuthorizationEventArgs) gerekir.