次の方法で共有


WebPart.AuthorizationFilter プロパティ

定義

WebPart コントロールをページに追加することが承認されるかどうかを決定する任意の文字列を取得または設定します。

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

プロパティ値

コントロールが Web ページに追加されることを承認する文字列。 既定値は空の文字列 ("") です。

属性

次のコード例では、 プロパティの使用方法を AuthorizationFilter 示します。 ハンドラーがメソッドのカスタム フィルター コードを AuthorizeWebPart 提供できるように、イベントのカスタム メソッド ハンドラーを設定する方法を OnAuthorizeWebPart 示します。 この例は、ページ開発者がページに追加するコントロールの WebPart フィルター処理シナリオと承認を提供する一般的な方法です。

Web ページ コードで、 要素に <asp:webpartmanager> イベント ハンドラーの名前が OnAuthorizeWebPart 割り当てられた 属性があることに注意してください。 このメソッドは、ページ上のコントロールのプロパティ値が AuthorizationFilteradmin設定されているかどうかを確認し、設定されている場合は を返 trueします。これは、そのコントロールが承認され、ページに追加されることを意味します。

注意

プロパティに値が割り当てられないコントロールも追加されることに 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>

ロールでユーザーを設定することは、このトピックの範囲外であるため、このコード例では、フィルター処理でユーザー ロールを確認しません。 ただし、ユーザー ロールに従ってコントロールをフィルター処理するシナリオは、このフィルター処理機能の最も一般的な用途の 1 つである可能性があります。 サイトにロールがあり、このメソッドのユーザー ロールをチェックしてコントロールをフィルター処理する場合、メソッドは次のコード ブロックのようになります (ロールを使用しない前のコード例のより単純なアプローチに対して)。

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

注釈

Web パーツ コントロール セットでは、 プロパティの既定の動作は AuthorizationFilter 実装されません。 ただし、 プロパティは、カスタム WebPart コントロールに任意の文字列値を割り当てることができるように提供されます。このプロパティは、コントロールをAuthorizeWebPartページに追加できるかどうかを判断するために、イベント中にコントロールによってWebPartManager確認できます。

場合によっては、 プロパティを AuthorizationFilter ASP.NET ロール マネージャー機能と共に使用して、ユーザーが特定のロールに属していて、プロパティの文字列値が開発者によって設定された特定の AuthorizationFilter 条件を満たしている場合は、コントロールを追加できます。 この方法により、開発者は、ロールと、指定した他の承認基準の組み合わせに基づいて、ページのカスタム ビューを作成できます。

このプロパティは、テーマまたはスタイル シート テーマによって設定することはできません。 詳細については、「テーマとスキン」と「ASP.NET」を参照してくださいThemeableAttribute

このプロパティのパーソナル化スコープは に Shared 設定され、承認されたユーザーのみが変更できます。 詳細については、「および Web パーツのパーソナル化の概要」を参照してくださいPersonalizableAttribute

注意 (継承者)

このプロパティを使用するには、カスタム WebPartManager コントロールを作成し、その OnAuthorizeWebPart(WebPartAuthorizationEventArgs) メソッドまたはその IsAuthorized(WebPart) メソッドをオーバーライドして、 プロパティのチェックを処理する AuthorizationFilter 必要があります。

適用対象

こちらもご覧ください