共用方式為


WebPartManager.AuthorizeWebPart 事件

定義

當呼叫 IsAuthorized 方法,以判斷 WebPart 或伺服器控制項是否可以加入至頁面時發生。

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 

事件類型

範例

下列程式代碼範例示範如何設定事件的自定義事件處理程式 AuthorizeWebPart ,以自動覆寫預設 OnAuthorizeWebPart 方法。

方法中的 mgr1_AuthorizeWebPart 程式代碼會檢查頁面上的控件是否將其各自的 AuthorizationFilter 屬性值設定為 user ,如果是,則會傳回 true,這表示它們將會獲得授權並新增至頁面。 這假設預設方法是允許使用者在用戶個人化範圍中使用頁面來檢視控件。 不過,請注意,在範例中,其中一個控件的 AuthorizationFilter 屬性值設定為 admin。 開發人員可能會在專為系統管理用戶所設計的特製化控件上放置此篩選。 此控制件會在事件期間 AuthorizeWebPart 失敗授權檢查,且不會顯示。 請注意,沒有屬性集的控件也會顯示;它們假設不是篩選案例的一部分,因為它們 AuthorizationFilter 的屬性未設定。

<%@ 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>

備註

每當AuthorizeWebPartWebPart控件加入至頁面時,就會發生此事件。 有一些常見的案例,其中控件可以新增至頁面。 如需這些內容的完整描述,請參閱 方法的 IsAuthorized 一節。 新增控件時,必須檢查它是否已經設定其 AuthorizationFilter 屬性,如果是的話,控件是否有權新增至頁面。

開發人員可以建立 AuthorizeWebPart 事件的事件處理程式,以提供控件的篩選。 如果控件的 AuthorizationFilter 屬性值不符合事件處理程式程式代碼中的準則,控件就不會新增至頁面。

適用於

另請參閱