Share via


WebPart.AuthorizationFilter Özellik

Tanım

Denetimin sayfaya ekleme 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 ayarlandığını gösterir. Bu örnek, sayfa geliştiricisinin bir filtreleme senaryosu ve sayfaya eklenecek denetimlerin WebPart yetkilendirmesini 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 da yetkilendirilecekleri ve sayfaya eklenecekleri anlamına gelir.

Not

Özelliğine herhangi bir değer atanmamış denetimlerin AuthorizationFilter de eklendiğine dikkat edin çü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 bazıları filtrelenmez, çünkü 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>

Rollerin kullanıcılarını ayarlamak bu konunun kapsamı dışında olduğundan, bu kod örneği filtrelemedeki kullanıcı rollerini denetlemez. Ancak, kullanıcı rollerine göre denetimleri 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 herhangi bir varsayılan davranış uygulamaz. Ancak, özel WebPart bir denetime rastgele bir dize değeri atayabilmeniz için özelliği 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 belirlenen belirli koşulları karşılıyorsa denetim eklenebilir. Bu yaklaşım, geliştiricilerin belirledikleri rollerin ve diğer yetkilendirme ölçütlerinin birleşimine dayalı olarak bir sayfanın özel görünümlerini 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 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 OnAuthorizeWebPart(WebPartAuthorizationEventArgs) veya IsAuthorized(WebPart) yöntemini geçersiz kılmanız gerekir.

Şunlara uygulanır

Ayrıca bkz.