次の方法で共有


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 

イベントの種類

次のコード例では、既定OnAuthorizeWebPartのメソッドを自動的にオーバーライドする イベントのAuthorizeWebPartカスタム イベント ハンドラーを設定する方法を示します。

メソッドの mgr1_AuthorizeWebPart コードは、ページ上のコントロールのそれぞれの AuthorizationFilter プロパティ値が に user 設定されているかどうかを確認し、設定されている場合は を返 trueします。これは、承認され、ページに追加されることを意味します。 これは、既定のアプローチでは、ユーザーがユーザーパーソナル化スコープ内のページでコントロールを表示できるようにすることを前提としています。 ただし、例の 1 つのコントロールのプロパティ値が 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>

注釈

イベントは AuthorizeWebPart 、コントロールがページに WebPart 追加されるたびに発生します。 コントロールをページに追加できる一般的なシナリオがいくつかあります。 これらの詳細については、 メソッドの「解説」セクションを IsAuthorized 参照してください。 コントロールを追加するときは、そのプロパティが設定されているかどうかを確認 AuthorizationFilter し、設定されている場合は、コントロールがページに追加される権限があるかどうかを確認する必要があります。

開発者は、イベントのイベント ハンドラーを AuthorizeWebPart 作成して、コントロールのフィルター処理を提供できます。 コントロールの AuthorizationFilter プロパティ値がイベント ハンドラー コードの条件を満たしていない場合、コントロールはページに追加されません。

適用対象

こちらもご覧ください