WebPartManager.IsAuthorizedとは? わかりやすく解説

WebPartManager.IsAuthorized メソッド (WebPart)

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

ページへのコントロール追加承認されているかどうか判断する最初の手順を実行します

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

例外例外
例外種類条件

ArgumentNullException

webPartnull 参照 (Visual Basic では Nothing) です。

解説解説
使用例使用例

コードから IsAuthorized(WebPart) メソッド呼び出しページへのコントロール追加承認されるかどうか判断する方法コード例次に示します

コード例は、次の 3 つの部分から成ります

このコード例は、IsAuthorized(Type,String,String,Boolean) オーバーロード メソッドオーバーライドするカスタム WebPartManager コントロール使用して、AuthorizationFilter プロパティカスタム ハンドリング提供します。このコントロールは、プロパティ値に admin があるかどうかチェックし、この値が存在する場合コントロール承認しますコントロール異なる値を持っている場合、そのコントロール承認されません。このプロパティ値を持っていないコントロールは、フィルタ処理対象外見なされるため承認されます。

このコード例実行するためには、このソース コードコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みアセンブリWeb サイトBin フォルダまたはグローバル アセンブリ キャッシュ配置できますサイトの App_Code フォルダソース コード配置し実行時動的にコンパイルすることもできます。このコード例は、動的コンパイル方法使用しますコンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロール開発と使用」を参照してください

Imports System
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class MyManagerAuthorize
    Inherits WebPartManager

    Public Overrides Function
 IsAuthorized(ByVal type As Type, _
      ByVal path As String,
 ByVal authorizationFilter As String,
 _
      ByVal isShared As Boolean)
 As Boolean

      If Not String.IsNullOrEmpty(authorizationFilter)
 Then
        If authorizationFilter = "admin"
 Then
          Return True
        Else
          Return False
        End If
      Else
        Return True
      End If

    End Function

  End Class

End Namespace
using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.CS.Controls
{
  public class MyManagerAuthorize : WebPartManager
  {
    public override bool IsAuthorized(Type
 type, string path, string authorizationFilter,
 bool isShared)
    {
      if (!String.IsNullOrEmpty(authorizationFilter))
      {
        if (authorizationFilter == "admin")
          return true;
        else
          return false;
      }
      else
        return true;

    }
  }
}

コード例2 番目の部分は、コントロール除外できるフィルタ作成します次の Web ページには、<asp:webpartzone> 要素3 つの ASP.NET サーバー コントロール含まれています。最初2 番目のコントロールは、それぞれ異なる値が設定されAuthorizationFilter プロパティ持ち3 番目のコントロールにはプロパティ割り当てられていません。実行時にこの承認値をチェックし開発者設定した条件フィルタ満たす場合は、ページコントロール追加できますまた、Page_Load メソッドでは、コードIsAuthorized(WebPart) メソッド呼び出しそれぞれのコントロール承認されるかどうか判断します承認される場合は、それぞれのコントロールの ExportMode プロパティ設定します

<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls"
 
    TagPrefix="aspSample"%>


<script runat="server">

  Protected Sub Page_Load(ByVal
 sender As Object, _
    ByVal e As System.EventArgs)
    
    Dim part As WebPart
    For Each part In mgr1.WebParts
      If mgr1.IsAuthorized(part) Then
        part.ExportMode = WebPartExportMode.All
      End If
    Next
  End Sub

</script>

<html  >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:MyManagerAuthorize ID="mgr1" runat="server"
  />
      <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"
            AuthorizationFilter="user" />
          <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="aspSample"%>


<script runat="server">
  
  protected void Page_Load(object sender, EventArgs
 e)
  {
    foreach (WebPart part in mgr1.WebParts)
    {
      if (mgr1.IsAuthorized(part))
        part.ExportMode = WebPartExportMode.All;
    }
    
  }
</script>

<html  >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:MyManagerAuthorize ID="mgr1" runat="server"
  />
      <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"
            AuthorizationFilter="user" />
          <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

コード例機能するには、Web.config ファイル設定追加してWeb パーツ記述ファイルエクスポートできるようにする必要があります。このコード例Web ページと同じディレクトリ内に Web.config ファイル存在することを確認してください<system.web> セクション内に、次のマークアップのように、true設定されenableExport 属性を持つ <webParts> 要素存在することを確認します

<webParts enableExport="true">

...

</webParts>

ブラウザページ読み込んだ後、最初コントロール表示されます。これはこのコントロールが、オーバーライドされたメソッド条件を満たすためです。2 番目のコントロールフィルタ除外されるため、ページ追加されません。3 番目のコントロールAuthorizationFilter プロパティ設定されていないため、このコントロールページ追加されます。いずれかコントロールタイトル バーにある動詞メニュー アイコンクリックすると、それぞれに ExportMode プロパティ値が割り当てられているため、両方エクスポートできます

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WebPartManager クラス
WebPartManager メンバ
System.Web.UI.WebControls.WebParts 名前空間
WebPart.AuthorizationFilter プロパティ
AuthorizeWebPart
OnAuthorizeWebPart
AuthorizeWebPart
WebPartAuthorizationEventArgs クラス
OnAuthorizeWebPart
その他の技術情報
ASP.NET Web パーツ ページ

WebPartManager.IsAuthorized メソッド (Type, String, String, Boolean)

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

ページへのコントロール追加承認されているかどうか判断する最後の手順を実行します

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

Public Overridable Function
 IsAuthorized ( _
    type As Type, _
    path As String, _
    authorizationFilter As String, _
    isShared As Boolean _
) As Boolean
Dim instance As WebPartManager
Dim type As Type
Dim path As String
Dim authorizationFilter As String
Dim isShared As Boolean
Dim returnValue As Boolean

returnValue = instance.IsAuthorized(type, path, authorizationFilter, isShared)
public virtual bool IsAuthorized (
    Type type,
    string path,
    string authorizationFilter,
    bool isShared
)
public:
virtual bool IsAuthorized (
    Type^ type, 
    String^ path, 
    String^ authorizationFilter, 
    bool isShared
)
public boolean IsAuthorized (
    Type type, 
    String path, 
    String authorizationFilter, 
    boolean isShared
)
public function IsAuthorized (
    type : Type, 
    path : String, 
    authorizationFilter : String, 
    isShared : boolean
) : boolean

パラメータ

type

承認されているかどうか確認対象となるコントロールType

path

コントロールユーザー コントロールである場合は、承認対象となるコントロールソース ファイル相対アプリケーション パス

authorizationFilter

コントロールページ追加できるかどうか判断して承認するために使用されるWebPart コントロールの AuthorizationFilter プロパティ割り当てる任意の文字列値。

isShared

承認されるかどうか確認対象となるコントロール共有コントロールである (つまり、アプリケーション多くユーザーまたはすべてのユーザーに対して表示され、その IsShared プロパティ値が true設定されている) かどうか示します

戻り値
ページへのコントロール追加承認されるかどうかを示すブール値。

例外例外
例外種類条件

ArgumentNullException

typenull 参照 (Visual Basic では Nothing) です。

ArgumentException

typeユーザー コントロールで、pathnull 参照 (Visual Basic では Nothing) または空の文字列 ("") のいずれかです。

または

typeユーザー コントロール以外で、path に値が割り当てられています。

解説解説

IsAuthorized(Type,String,String,Boolean) オーバーロード メソッドは、ページへのコントロール追加承認されているかどうか判断する最後の手順を実行します。このメソッドは、type有効な型であること、チェック対象コントロールユーザー コントロール場合にのみ path に値が設定されていることを確認します次に、このメソッド重大な OnAuthorizeWebPart メソッド呼び出し、AuthorizeWebPart イベント発生させます

継承時の注意 承認チェックするときに追加の処理を用意する場合、このメソッドは WebPartManager クラスから継承してオーバーライドできます。このメソッドオーバーライドして authorizationFilter パラメータ特定の値チェックし、その値に基づいてコントロールページ追加されるかどうか判断するブール値を返しますまた、ページ開発者承認フィルタチェックしてカスタム ハンドリング提供する場合任意のクラスから継承しなくても、.aspx ページまたは分離コード ファイルインラインでこれを実行できます。このページには、WebPartManager コントロールOnAuthorizeWebPart メソッド代替イベント ハンドラ宣言できます詳細例については、OnAuthorizeWebPart メソッドトピック参照してください

使用例使用例

IsAuthorized メソッドオーバーライドし、ページへのコントロール追加承認されるかどうか判断する方法次のコード例示します

最初の手順では、コントロール除外できるフィルタ作成します次の Web ページには、<asp:webpartzone> 要素3 つの ASP.NET サーバー コントロール含まれています。最初2 番目のコントロールは、それぞれ異なる値が設定されAuthorizationFilter プロパティ持ち3 番目のコントロールにはプロパティ割り当てられていません。実行時にこの承認値がチェックされ開発者設定した条件フィルタ満たす場合は、ページコントロール追加できます

<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls"
 
    TagPrefix="aspSample"%>


<script runat="server">

  Protected Sub Page_Load(ByVal
 sender As Object, _
    ByVal e As System.EventArgs)
    
    Dim part As WebPart
    For Each part In mgr1.WebParts
      If mgr1.IsAuthorized(part) Then
        part.ExportMode = WebPartExportMode.All
      End If
    Next
  End Sub

</script>

<html  >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:MyManagerAuthorize ID="mgr1" runat="server"
  />
      <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"
            AuthorizationFilter="user" />
          <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="aspSample"%>


<script runat="server">
  
  protected void Page_Load(object sender, EventArgs
 e)
  {
    foreach (WebPart part in mgr1.WebParts)
    {
      if (mgr1.IsAuthorized(part))
        part.ExportMode = WebPartExportMode.All;
    }
    
  }
</script>

<html  >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:MyManagerAuthorize ID="mgr1" runat="server"
  />
      <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"
            AuthorizationFilter="user" />
          <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

2 番の手順では、IsAuthorized(Type,String,String,Boolean) メソッドオーバーライドし、承認フィルタカスタム ハンドリング作成します。このコードは、AuthorizationFilter プロパティが値を持っているかどうか最初にチェックし割り当てられていないコントロール自動的に追加されるようにします。コントロールフィルタ持っている場合、このコードフィルタ値が admin等しいときにのみ true返します。これは、ユーザーロールに応じて特定のユーザー特定のコントロール表示する場合使用できる簡単なしくみを示してます。ロール使用する完全な例はこのトピック範囲外ですが、現在のユーザー承認フィルタ値に一致するロールになっているかどうかチェックできる、このコード例におけるオーバーライドされたメソッドと同じロジック使用すると、そのユーザー場合にだけコントロール追加できます。これにより、一部ユーザーにはすべてのコントロール表示されその他のユーザーには選択したコントロールだけが表示されるページ作成できますロール使用してフィルタチェックする場合ロジックの例を次に示します

[Visual Basic]

If Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter) Then
  return True
Else
  return False
End If

[C#]

if(Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter))
    return true;
else
    return false;

コード例実行するためには、このソース コードコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みアセンブリWeb サイトBin フォルダまたはグローバル アセンブリ キャッシュ配置できますサイトの App_Code フォルダソース コード配置し実行時動的にコンパイルすることもできます。このコード例は、動的コンパイル方法使用しますコンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロール開発と使用」を参照してください

Imports System
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class MyManagerAuthorize
    Inherits WebPartManager

    Public Overrides Function
 IsAuthorized(ByVal type As Type, _
      ByVal path As String,
 ByVal authorizationFilter As String,
 _
      ByVal isShared As Boolean)
 As Boolean

      If Not String.IsNullOrEmpty(authorizationFilter)
 Then
        If authorizationFilter = "admin"
 Then
          Return True
        Else
          Return False
        End If
      Else
        Return True
      End If

    End Function

  End Class

End Namespace
using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.CS.Controls
{
  public class MyManagerAuthorize : WebPartManager
  {
    public override bool IsAuthorized(Type
 type, string path, string authorizationFilter,
 bool isShared)
    {
      if (!String.IsNullOrEmpty(authorizationFilter))
      {
        if (authorizationFilter == "admin")
          return true;
        else
          return false;
      }
      else
        return true;

    }
  }
}

ブラウザページ読み込んだ後、最初コントロール表示されます。これはこのコントロールが、オーバーライドされたメソッド条件を満たすためです。2 番目のコントロールは、そのフィルタ値が除外されるため、ページ追加されません。3 番目のコントロールAuthorizationFilter プロパティ設定されていないため、このコントロールページ追加されます。2 番目のコントロールプロパティ値を最初コントロールと同じ値に変更し、このページもう一度実行すると、2 番目のコントロール追加されます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WebPartManager クラス
WebPartManager メンバ
System.Web.UI.WebControls.WebParts 名前空間
WebPart.AuthorizationFilter プロパティ
AuthorizeWebPart
OnAuthorizeWebPart
その他の技術情報
ASP.NET Web パーツ ページ

WebPartManager.IsAuthorized メソッド

WebPart コントロールまたはその他のサーバー コントロールページ追加できるかどうか判断します
オーバーロードの一覧オーバーロードの一覧

参照参照

関連項目

WebPartManager クラス
WebPartManager メンバ
System.Web.UI.WebControls.WebParts 名前空間
WebPart.AuthorizationFilter プロパティ
AuthorizeWebPart
OnAuthorizeWebPart
AuthorizeWebPart
WebPartAuthorizationEventArgs クラス
OnAuthorizeWebPart

その他の技術情報

ASP.NET Web パーツ ページ
AuthorizeWebPart WebPartAuthorizationEventArgs OnAuthorizeWebPart


このページでは「.NET Framework クラス ライブラリ リファレンス」からWebPartManager.IsAuthorizedを検索した結果を表示しています。
Weblioに収録されているすべての辞書からWebPartManager.IsAuthorizedを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からWebPartManager.IsAuthorized を検索

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

辞書ショートカット

カテゴリ一覧

すべての辞書の索引



Weblioのサービス

「WebPartManager.IsAuthorized」の関連用語




WebPartManager.IsAuthorizedのお隣キーワード
検索ランキング

   

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



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

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

©2025 GRAS Group, Inc.RSS