UnauthorizedWebPart イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

関連項目
UnauthorizedWebPart クラスSystem.Web.UI.WebControls.WebParts 名前空間
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページUnauthorizedWebPart クラス
アセンブリ: System.Web (system.web.dll 内)


Web パーツ コントロール セットには、個々の WebPart コントロールをページに追加できるかどうかを判断するための承認機構が用意されています。開発者は、オプションで WebPart コントロールの AuthorizationFilter プロパティに任意の文字列を割り当てることができます。WebPartManager コントロールはページにコントロールを追加するときに、IsAuthorized メソッドを使用して、開発者が設定した基準に対してこのフィルタ値を確認し、コントロールが承認されていない場合は false を返します。
![]() |
---|
サーバー コントロールとユーザー コントロールは実行時に GenericWebPart オブジェクトでラップされ、このオブジェクトは AuthorizationFilter プロパティを継承するため、この承認機構は、WebPartZoneBase ゾーンに配置されたこれらのコントロールでも動作します。 |
WebPart コントロールが承認されていない場合、WebPartManager コントロールは、承認されていないコントロールの代わりに UnauthorizedWebPart コントロールをページのコントロール ツリーに挿入します。コントロール ツリー内の UnauthorizedWebPart コントロールは、ページ内の承認されていないコントロールの位置を予約し、ユーザーが以前 WebPart コントロールに適用したパーソナル化データが失われるのを防ぎます。
UnauthorizedWebPart コントロールは、その挿入先となるページには表示されず、また表示されるページのソース コード内にも出現しません。開発者は、WebPartManager コントロールの WebParts プロパティを調べることにより、ページのコントロール ツリー内にそれが存在することを確認できます。

UnauthorizedWebPart コントロールの使用方法を示すコード例を次に示します。
コード例の最初の部分は、IsAuthorized(WebPart) メソッドをオーバーライドしてカスタムの承認基準を作成する、カスタム WebPartManager コントロールです。特定の値が設定された AuthorizationFilter プロパティを持つ WebPart コントロール、またはそのプロパティに値が割り当てられていないコントロールは承認されますが、これらの基準を満たさないコントロールは承認されません。
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 番目の部分は、カスタム WebPartManager コントロールをホストする Web ページです。ここでは、<asp:webpartzone> 要素内に 3 つの静的サーバー コントロールが宣言されています。これらのコントロールは実際には WebPart コントロールではありませんが、実行時にこれらが GenericWebPart オブジェクトでラップされるため、これらを WebPart コントロールとして処理し、AuthorizationFilter プロパティに値を割り当てることができます。BulletedList コントロールは、カスタム WebPartManager コントロールの基準に従ってそのコントロールが承認されるように値が設定されたフィルタを保持します。Label コントロールは、承認されないように設定されたフィルタ値を保持します。Calendar コントロールはプロパティに値を割り当てないため、既定で承認されます。
<%@ 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 Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label2.Text = String.Empty Dim part As WebPart For Each part In mgr1.WebParts Label2.Text += part.ID & "<br />" 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:Button ID="Button1" runat="server" Text="List WebPart Controls" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label2" runat="server" Text="" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" %> <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; } } protected void Button1_Click(object sender, EventArgs e) { Label2.Text = String.Empty; foreach (WebPart part in mgr1.WebParts) Label2.Text += part.ID + "<br />"; } </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:Button ID="Button1" runat="server" Text="List WebPart Controls" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label2" runat="server" Text="" /> </div> </form> </body> </html>
コード例の 3 番目の部分は、Web パーツ記述ファイルをエクスポートできるようにするために Web.config ファイルに追加する必要のある設定です。このコード例の Web ページと同じディレクトリ内に Web.config ファイルが存在することを確認してください。<system.web> セクション内に、次のマークアップのように、true に設定された enableExport 属性を持つ <webParts> 要素が存在することを確認します。
<webParts enableExport="true">
...
</webParts>
ブラウザにページを読み込み、BulletedList コントロールと Calendar コントロールは予期したとおりに表示されても、Label コントロールは承認されなかったため表示されないことを確認します。[List WebPart Controls] ボタンをクリックすると、WebPartManager コントロールによって WebParts コレクション内のすべてのコントロールの ID が一覧表示されます。Label コントロールの ID が一覧に示され、ページにラベルが表示されなくても、UnauthorizedWebPart コントロールがページのコントロール ツリーに追加され、その場所が保持されていることがわかります。


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Panel
System.Web.UI.WebControls.WebParts.Part
System.Web.UI.WebControls.WebParts.WebPart
System.Web.UI.WebControls.WebParts.ProxyWebPart
System.Web.UI.WebControls.WebParts.UnauthorizedWebPart


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


UnauthorizedWebPart コンストラクタ (WebPart)
アセンブリ: System.Web (system.web.dll 内)


webPart が承認チェックに失敗すると、UnauthorizedWebPart コンストラクタは、スタティック コントロール webPart をパラメータとして取得します。スタティック コントロールは、プログラムで追加される代わりに、Web ページのマークアップに宣言されたコントロールです。コンストラクタが UnauthorizedWebPart コントロールの新しいインスタンスを返し、これが webPart の代わりにページのコントロール ツリーに追加されます。詳細については、「UnauthorizedWebPart」を参照してください。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


UnauthorizedWebPart コンストラクタ (String, String, String, String)
アセンブリ: System.Web (system.web.dll 内)

Public Sub New ( _ originalID As String, _ originalTypeName As String, _ originalPath As String, _ genericWebPartID As String _ )
Dim originalID As String Dim originalTypeName As String Dim originalPath As String Dim genericWebPartID As String Dim instance As New UnauthorizedWebPart(originalID, originalTypeName, originalPath, genericWebPartID)
public UnauthorizedWebPart ( string originalID, string originalTypeName, string originalPath, string genericWebPartID )
public: UnauthorizedWebPart ( String^ originalID, String^ originalTypeName, String^ originalPath, String^ genericWebPartID )
public UnauthorizedWebPart ( String originalID, String originalTypeName, String originalPath, String genericWebPartID )
public function UnauthorizedWebPart ( originalID : String, originalTypeName : String, originalPath : String, genericWebPartID : String )
- originalID
Web パーツ アプリケーションに参加するために WebPartZoneBase に追加された、元のサーバー コントロールまたはユーザー コントロールの ID が含まれている文字列。
- originalPath
- genericWebPartID
元のサーバー コントロールまたはユーザー コントロールをラップする GenericWebPart コントロールの ID が含まれている文字列。

UnauthorizedWebPart コンストラクタは、動的な WebPart コントロールまたはその他のサーバー コントロールが承認チェックに失敗すると呼び出されます。ダイナミック コントロールは、プログラムでページに追加されるページ、またはユーザーにより Web パーツ コントロールのカタログからページに追加されるコントロールです。UnauthorizedWebPart コンストラクタは、UnauthorizedWebPart コントロールの新しいインスタンスを返し、承認に失敗したダイナミック コントロールを置き換えます。詳細については、「UnauthorizedWebPart」を参照してください。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


UnauthorizedWebPart コンストラクタ
UnauthorizedWebPart コンストラクタは、その両方のオーバーロードで ProxyWebPart クラス内の基本コンストラクタを呼び出します。これらのコンストラクタのそれぞれがプロパティ データを初期化し、UnauthorizedWebPart コントロールの新しいインスタンスを作成します。
WebPartManager コントロールはコントロールのコレクションに WebPart コントロール (およびその他のサーバー コントロールまたはユーザー コントロール) を追加するときに、IsAuthorized メソッドを使用して各コントロールをチェックします。コントロールのインスタンスが承認されていない場合、コントロールの特定のプロパティ値 (その ID など) が新しい UnauthorizedWebPart コントロールのプロパティに割り当てられ、次に、承認に失敗したコントロールの代わりに、ページのコントロール ツリーに UnauthorizedWebPart コントロールが追加されます。
UnauthorizedWebPart コントロールはページに表示されないため、ユーザーはその存在を知る方法がありません。ただし、UnauthorizedWebPart コントロールはプレースホルダとしても動作するため、コントロール ツリー内で元のコントロールの位置と、元のコントロールの既存のパーソナル化データを維持します。このため、ユーザーが以前パーソナル化したコントロールが何らかの理由で承認されないようになり、その後再び承認された場合、ユーザーのパーソナル化データを復元できます。
UnauthorizedWebPart IsAuthorized ASP.NET Web パーツ ページ
名前 | 説明 |
---|---|
UnauthorizedWebPart (WebPart) | 静的な WebPart コントロール (または、サーバー コントロールまたはユーザー コントロール) が承認に失敗すると呼び出され、UnauthorizedWebPart コントロールの新しいインスタンスを初期化します。 |
UnauthorizedWebPart (String, String, String, String) | 動的な WebPart コントロール (または、サーバー コントロールまたはユーザー コントロール) が承認に失敗すると呼び出され、UnauthorizedWebPart コントロールの新しいインスタンスを初期化します。 |

関連項目
UnauthorizedWebPart クラスUnauthorizedWebPart メンバ
System.Web.UI.WebControls.WebParts 名前空間
UnauthorizedWebPart クラス
IsAuthorized
UnauthorizedWebPart クラス
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページASP.NET Web パーツ ページ
UnauthorizedWebPart プロパティ


関連項目
UnauthorizedWebPart クラスSystem.Web.UI.WebControls.WebParts 名前空間
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページUnauthorizedWebPart メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
UnauthorizedWebPart クラスSystem.Web.UI.WebControls.WebParts 名前空間
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページUnauthorizedWebPart メンバ
WebPart コントロールに対して WebPartManager コントロールの IsAuthorized メソッドが false を返す場合に、プレースホルダ オブジェクトを作成するために使用されます。このクラスは継承できません。
UnauthorizedWebPart データ型で公開されるメンバを以下の表に示します。




名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

関連項目
UnauthorizedWebPart クラスSystem.Web.UI.WebControls.WebParts 名前空間
IsAuthorized
その他の技術情報
ASP.NET Web パーツ ページ- UnauthorizedWebPartのページへのリンク