WebPartManager.OnAuthorizeWebPart メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > WebPartManager.OnAuthorizeWebPart メソッドの意味・解説 

WebPartManager.OnAuthorizeWebPart メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

AuthorizeWebPart イベント発生させ、イベントハンドラ存在する場合はそれを呼び出します。

名前空間: System.Web.UI.WebControls.WebParts
アセンブリ: System.Web (system.web.dll 内)
構文構文

Protected Overridable Sub
 OnAuthorizeWebPart ( _
    e As WebPartAuthorizationEventArgs _
)
Dim e As WebPartAuthorizationEventArgs

Me.OnAuthorizeWebPart(e)
protected virtual void OnAuthorizeWebPart (
    WebPartAuthorizationEventArgs e
)
protected:
virtual void OnAuthorizeWebPart (
    WebPartAuthorizationEventArgs^ e
)
protected void OnAuthorizeWebPart (
    WebPartAuthorizationEventArgs e
)
protected function OnAuthorizeWebPart (
    e : WebPartAuthorizationEventArgs
)

パラメータ

e

イベント データ格納している WebPartAuthorizationEventArgs。

解説解説

OnAuthorizeWebPart メソッドは、ページWebPart コントロール追加するかどうか承認チェックするときに、IsAuthorized メソッドによって呼び出されます。OnAuthorizeWebPart メソッド呼び出されると、AuthorizeWebPart イベント発生させ、そのイベントハンドラ メソッドがある場合は、そのハンドラ呼び出します。

WebPart コントロール承認するプロセスは、重要な Web パーツ機能です。WebPartManager コントロールによってゾーン追加されるすべての WebPart コントロールまたはサーバー コントロールは、追加可能かどうか判断するために承認プロセス経由します既定では、ゾーンへのコントロール追加防止するフィルタ処理条件は、Web パーツ コントロール セット用意されていません。ただし、このコントロール セットには、開発者が独自のフィルタ処理条件作成するのに必要なしくみが用意されています。これらのしくみを使用すると、カスタムフィルタ処理作成できます。たとえば、ユーザー管理者ロールになっている場合ページ表示するときに特定のコントロールゾーン追加しユーザーユーザー ロール場合はこれらのコントロール追加しないようにする、フィルタ作成できます

承認プロセス実行しているときのフィルタ処理コントロールのしくみは、WebPart コントロールの AuthorizationFilter プロパティIsAuthorized メソッドOnAuthorizeWebPart メソッド、および WebPartManager コントロールAuthorizeWebPart イベント構成されます。

フィルタ処理作成するには、基本的に次の 2 つタスクあります最初にフィルタ処理する各 WebPart コントロールAuthorizationFilter プロパティに文字列を割り当てます。これらの文字列値は任意ですが、フィルタ処理する条件含まれている必要があります。たとえば、管理者ユーザーがそのページ表示しているときにのみゾーン指定コントロール追加する場合、このプロパティadmin文字列値を割り当てることができます次にASP.NET ロール機能使用してサイトすべてのユーザーを、管理者マネージャユーザーなどのさまざまなロール追加しますページ読み込むと、フィルタ処理コードユーザーロールチェックし、それをチェック対象コントロール承認フィルタ値と比較して、たとえば、ユーザー管理者ロールになっていて、コントロールAuthorizationFilter 値を admin設定していた場合は、そのコントロール追加できます

フィルタ処理作成する 2 番の手順では、WebPart コントロールAuthorizationFilter プロパティ値をチェックするコード記述し、各コントロールゾーン追加する前にこうしたコントロール承認するかどうか判断します。このフィルタ処理コード2 つの場所のいずれかに配置できます最初の場所はページ開発者適してます。Web ページサーバー スクリプト コードまたはコード分離ファイルに、AuthorizeWebPart イベント処理するメソッド直接作成できます次のサンプル マークアップ コードに示すように、ページWebPartManager コントロールタグOnAuthorizeWebPart 属性追加することにより、このメソッドイベント関連付けます。

<asp:webpartmanager runat="server" 
   OnAuthorizeWebPart="manager1_AuthorizeWebPart" />

すべてのカスタム メソッドは、フィルタ処理条件に対してWebPart コントロールチェックしその結果基づいてWebPartAuthorizationEventArgs オブジェクトの IsAuthorized プロパティに、WebPart コントロール追加できるかどうかを示すブール値を割り当てる必要があります。「例」のコードこの方法が示されています。

フィルタ処理コード配置する 2 つ目のオプションでは、WebPartManager クラスから継承しフィルタ条件チェックするメソッドオーバーライドます。オーバーライドできるメソッドは、WebPartManager.IsAuthorized(Type,String,String,Boolean) メソッドまたは OnAuthorizeWebPart メソッドいずれかです。どちらのメソッド機能しますが、ほとんどの場合 IsAuthorized メソッドオーバーライドお勧めます。これは、このメソッド承認プロセス全体プログラムより詳細制御できるのに対しOnAuthorizeWebPart メソッドは、イベント発生させてハンドラチェックする 1 つ特定のタスクのみを実行するためです。IsAuthorized メソッドオーバーライドするカスタム WebPartManager クラスコード例については、このメソッドWebPartManager.IsAuthorized(Type,String,String,Boolean) オーバーロードトピック参照してください

使用例使用例

AuthorizeWebPart イベントカスタム イベント ハンドラが、OnAuthorizeWebPart メソッドカスタムフィルタ処理コード提供できるように設定する方法次のコード例示します。この例は、ページ追加される WebPart コントロールフィルタ処理機能および承認機能を、ページ開発者どのように用意するのかについて代表的な方法示します

Web ページで、<asp:webpartmanager> 要素は、イベント ハンドラの名前が割り当てられOnAuthorizeWebPart 属性持ってます。このメソッドは、ページ上のコントロールadmin設定されAuthorizationFilter プロパティ値を持っているかどうかチェックし持っている場合true返します。これは、こうしたコントロール承認されページ追加されることを示します

メモメモ

AuthorizationFilter プロパティに値が割り当てられていないコントロールフィルタ処理対象外見なされるため、同様に追加されます。これは、フィルタ処理における共通の方法です。フィルタ処理されるコントロールもあれば、フィルタ処理されないコントロールありますフィルタ処理されないコントロール存在するのは、このコントロールが、すべてのユーザーに対して使用可能であると想定されているためです。

<%@ Page Language="vb" %>

<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  >
<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="C#" %>

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

ユーザーへのロール設定はこのトピック範囲外のため、このコード例ではフィルタ処理ユーザー ロールチェック行いません。ただし、ユーザー ロール従ったコントロールフィルタ処理は、多く場合このフィルタ処理において最も一般的に使用される機能1 つなりますサイト上でロール使用していて、この方法でユーザー ロールチェックしてコントロールフィルタ処理する場合その方法次のようなコード ブロックなります (これに対して上のコード例のような簡単な方法では、ユーザー ロール使用しません)。

[Visual Basic]

Protected Sub WebPartManager1_AuthorizeWebPart(ByVal sender _
  As Object, ByVal e As WebPartAuthorizationEventArgs)

  If String.IsNullOrEmpty(e.AuthorizationFilter) Then
    If Roles.IsUserInRole(Page.User.Identity.Name, _
      e.AuthorizationFilter) Then

      e.IsAuthorized = True
    Else
      e.IsAuthorized = False
    End If
  End If

End Sub

[C#]

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;
  }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WebPartManager クラス
WebPartManager メンバ
System.Web.UI.WebControls.WebParts 名前空間
AuthorizeWebPart
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

WebPartManager.OnAuthorizeWebPart メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



WebPartManager.OnAuthorizeWebPart メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS