Bagikan melalui


WebPartManager.IsAuthorized Metode

Definisi

Menentukan apakah WebPart kontrol server atau lainnya dapat ditambahkan ke halaman.

Overload

IsAuthorized(WebPart)

Melakukan langkah-langkah awal dalam menentukan apakah kontrol berwenang untuk ditambahkan ke halaman.

IsAuthorized(Type, String, String, Boolean)

Melakukan langkah-langkah akhir dalam menentukan apakah kontrol diotorisasi untuk ditambahkan ke halaman.

Keterangan

Bagian dari fleksibilitas fitur Komponen Web adalah kemampuan untuk menambahkan kontrol server ke halaman Web pada durasi. Ada sejumlah skenario umum di mana kontrol server (yang dapat menjadi kontrol kustom WebPart , kontrol server kustom, kontrol pengguna, atau kontrol ASP.NET) dapat ditambahkan.

Dalam skenario umum berikut, kumpulan kontrol Bagian Web mencoba menambahkan kontrol server ke halaman, dan metode dipanggil IsAuthorized untuk mengotorisasinya:

  • Ketika kontrol server ditambahkan dengan mendeklarasikannya dalam markup halaman Web dalam zona WebPartZoneBase .

  • Ketika kontrol server ditambahkan secara terprogram ke zona.

  • Saat pengguna mengimpor kontrol server ke katalog kontrol Bagian Web.

  • Ketika kontrol server yang ada dimuat dari penyimpanan data personalisasi.

  • Ketika kontrol server ditambahkan ke DeclarativeCatalogPart kontrol untuk membuatnya tersedia dalam katalog kontrol server.

Dalam setiap skenario di mana kontrol ditambahkan, IsAuthorized metode dipanggil untuk memastikan bahwa semua kriteria otorisasi telah terpenuhi untuk memungkinkan kontrol ditambahkan. Ketika kontrol diotorisasi, kontrol ditambahkan secara normal seperti jika tidak ada skenario pemfilteran. Ketika kontrol tidak diotorisasi, kumpulan kontrol Bagian Web dapat merespons dalam beberapa cara, tergantung pada konteksnya. Set kontrol dapat secara diam-diam gagal menambahkan bagian yang tidak sah (jika tidak perlu memberi tahu pengguna), set kontrol dapat menampilkan pesan kesalahan, atau dapat menambahkan instans UnauthorizedWebPart kelas sebagai tempat penampung. Objek tempat penampung ini tidak terlihat di halaman, tetapi terlihat dalam kode sumber halaman untuk menunjukkan bahwa kontrol yang tidak sah dikecualikan.

Penentuan apakah kontrol diotorisasi adalah filter otorisasi. Filter otorisasi adalah fitur dalam kumpulan kontrol Bagian Web yang memungkinkan pengembang untuk mengecualikan dari halaman kontrol apa pun yang tidak memenuhi kriteria yang ditentukan.

Untuk membuat skenario pemfilteran, pengembang harus melakukan dua hal. Pertama, mereka harus menetapkan nilai string (nilainya bisa arbitrer) ke AuthorizationFilter properti dari setiap WebPart kontrol yang mereka rencanakan untuk digunakan dalam skenario. Mereka juga dapat menetapkan nilai ke properti ini untuk jenis kontrol server lain yang bukan WebPart kontrol, karena jika ditempatkan di zona, kontrol tersebut dibungkus WebPartZoneBase dengan GenericWebPart kontrol pada waktu proses, dan kontrol ini mewarisi AuthorizationFilter properti .

Langkah kedua yang diperlukan untuk membuat skenario pemfilteran adalah mengambil IsAuthorized(Type, String, String, Boolean) alih metode , atau membuat penanganan aktivitas untuk peristiwa tersebut AuthorizeWebPart . Dalam metode ini, pengembang dapat memeriksa AuthorizationFilter properti , dan jika nilai menunjukkan bahwa kontrol tidak boleh diotorisasi, pengembang memastikan bahwa IsAuthorized metode mengembalikan nilai false.

Catatan

Untuk contoh kode dan deskripsi cara menyiapkan skenario pemfilteran yang disesuaikan menggunakan IsAuthorized metode , lihat topik untuk kelebihan beban metode.

IsAuthorized(WebPart)

Melakukan langkah-langkah awal dalam menentukan apakah kontrol berwenang untuk ditambahkan ke halaman.

public:
 bool IsAuthorized(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public bool IsAuthorized (System.Web.UI.WebControls.WebParts.WebPart webPart);
member this.IsAuthorized : System.Web.UI.WebControls.WebParts.WebPart -> bool
Public Function IsAuthorized (webPart As WebPart) As Boolean

Parameter

webPart
WebPart

Kontrol WebPart server atau lainnya sedang diperiksa otorisasinya.

Mengembalikan

Nilai Boolean yang menunjukkan apakah webPart dapat ditambahkan ke halaman.

Pengecualian

webPartadalah null.

Contoh

Contoh kode berikut menunjukkan cara memanggil IsAuthorized(WebPart) metode dari kode Anda untuk menentukan apakah kontrol diizinkan untuk ditambahkan ke halaman.

Contoh kode memiliki tiga bagian:

  • Kontrol kustom WebPartManager yang mengambil alih IsAuthorized metode .

  • Halaman Web yang membuat filter untuk WebPart kontrol.

  • Penjelasan tentang cara menjalankan contoh kode.

Contoh kode ini menggunakan kontrol kustom WebPartManager yang mengambil alih IsAuthorized(Type, String, String, Boolean) metode kelebihan beban untuk memberikan penanganan AuthorizationFilter kustom properti. Kontrol ini memeriksa nilai admin properti dan, jika nilainya ada, mengotorisasi kontrol. Jika kontrol memiliki nilai yang berbeda, kontrol tidak diotorisasi; kontrol tanpa nilai properti juga diotorisasi, karena dianggap tidak menjadi bagian dari skenario pemfilteran.

Agar contoh kode ini berjalan, Anda harus mengkompilasi kode sumber ini. Anda dapat mengkompilasinya secara eksplisit dan meletakkan rakitan yang dihasilkan di folder Bin situs Web Anda atau cache perakitan global. Atau, Anda dapat meletakkan kode sumber di folder App_Code situs Anda, di mana kode tersebut akan dikompilasi secara dinamis pada durasi. Contoh kode ini menggunakan metode kompilasi dinamis. Untuk panduan yang menunjukkan cara mengkompilasi, lihat Panduan: Mengembangkan dan Menggunakan Kontrol Server Web Kustom.

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

Bagian kedua dari contoh kode membuat filter yang berpotensi mengecualikan kontrol. Halaman Web berikut berisi tiga kontrol server ASP.NET dalam sebuah <asp:webpartzone> elemen. Perhatikan bahwa kontrol pertama dan kedua mengatur propertinya AuthorizationFilter ke nilai yang berbeda, dan yang ketiga tidak menetapkan properti . Nilai otorisasi ini dapat diperiksa pada durasi, dan kontrol dapat ditambahkan ke halaman jika filter cocok dengan kriteria yang ditetapkan oleh pengembang. Perhatikan juga bahwa dalam Page_Load metode ini, kode memanggil IsAuthorized(WebPart) metode untuk menentukan apakah masing-masing kontrol diotorisasi, dan jika demikian, kode mengatur properti setiap kontrol ExportMode .

<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="aspSample"%>


<!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 Page_Load(object sender, EventArgs e)
  {
    foreach (WebPart part in mgr1.WebParts)
    {
      if (mgr1.IsAuthorized(part))
        part.ExportMode = WebPartExportMode.All;
    }
    
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls" 
    TagPrefix="aspSample"%>


<!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 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>

Perhatikan bahwa agar contoh kode berfungsi, Anda harus menambahkan pengaturan dalam file Web.config untuk mengaktifkan ekspor file deskripsi Komponen Web. Pastikan Anda memiliki file Web.config di direktori yang sama dengan halaman Web untuk contoh kode ini. Di dalam bagian <system.web> , pastikan ada <webParts> elemen dengan atribut yang enableExport diatur ke true, seperti dalam markup berikut.

<webParts enableExport="true">

...

</webParts>

Setelah Anda memuat halaman di browser, perhatikan bahwa kontrol pertama ditampilkan, karena cocok dengan kriteria dalam metode yang ditimpa. Kontrol kedua tidak ditambahkan ke halaman, karena dikecualikan oleh filter. Kontrol ketiga juga ditambahkan, karena tidak memiliki kumpulan propertinya AuthorizationFilter . Perhatikan bahwa jika Anda mengklik ikon menu kata kerja di bilah judul salah satu kontrol, keduanya dapat diekspor karena nilai properti masing-masing ExportMode ditetapkan.

Keterangan

Metode IsAuthorized ini adalah metode awal yang dipanggil oleh kontrol Bagian Web yang diatur untuk memeriksa otorisasi WebPart kontrol. Ini menerima webPart sebagai parameter, dan memulai proses yang pada akhirnya menentukan apakah kontrol akan ditambahkan ke halaman. Panggil metode ini dari kode Anda secara langsung ketika Anda perlu menentukan apakah kontrol tertentu diotorisasi.

Metode ini melakukan tugas awal untuk menentukan apakah kontrol mewarisi dari WebPart kelas atau merupakan GenericWebPart kontrol dan, jika demikian, jenis kontrol anak apa yang dikandungnya. Untuk menyelesaikan tugas otorisasi, ini memanggil IsAuthorized(Type, String, String, Boolean) metode kelebihan beban.

Catatan Bagi Pemanggil

Metode ini dipanggil langsung dari kode Anda. Jika Anda ingin mendapatkan kontrol terprogram yang lebih besar atas proses otorisasi, Anda dapat mengambil IsAuthorized(Type, String, String, Boolean) alih metode kelebihan beban.

Lihat juga

Berlaku untuk

IsAuthorized(Type, String, String, Boolean)

Melakukan langkah-langkah akhir dalam menentukan apakah kontrol diotorisasi untuk ditambahkan ke halaman.

public:
 virtual bool IsAuthorized(Type ^ type, System::String ^ path, System::String ^ authorizationFilter, bool isShared);
public virtual bool IsAuthorized (Type type, string path, string authorizationFilter, bool isShared);
abstract member IsAuthorized : Type * string * string * bool -> bool
override this.IsAuthorized : Type * string * string * bool -> bool
Public Overridable Function IsAuthorized (type As Type, path As String, authorizationFilter As String, isShared As Boolean) As Boolean

Parameter

type
Type

Kontrol Type sedang diperiksa untuk otorisasi.

path
String

Jalur aplikasi relatif ke file sumber untuk kontrol yang diotorisasi, jika kontrol adalah kontrol pengguna.

authorizationFilter
String

Nilai string arbitrer yang ditetapkan ke AuthorizationFilter properti WebPart kontrol, digunakan untuk mengotorisasi apakah kontrol dapat ditambahkan ke halaman.

isShared
Boolean

Menunjukkan apakah kontrol yang diperiksa untuk otorisasi adalah kontrol bersama, yang berarti bahwa kontrol tersebut terlihat oleh banyak atau semua pengguna aplikasi, dan nilai propertinya IsShared diatur ke true.

Mengembalikan

Nilai Boolean yang menunjukkan apakah kontrol berwenang untuk ditambahkan ke halaman.

Pengecualian

typeadalah null.

type adalah kontrol pengguna, dan path merupakan null string kosong ("").

-atau-

type bukan kontrol pengguna, dan path memiliki nilai yang ditetapkan untuknya.

Contoh

Contoh kode berikut menunjukkan cara mengambil alih IsAuthorized metode untuk menentukan apakah kontrol diizinkan untuk ditambahkan ke halaman.

Langkah pertama adalah membuat filter yang berpotensi mengecualikan kontrol. Halaman Web berikut berisi tiga kontrol server ASP.NET dalam sebuah <asp:webpartzone> elemen. Perhatikan bahwa kontrol pertama dan kedua mengatur propertinya AuthorizationFilter ke nilai yang berbeda, dan yang ketiga tidak menetapkan properti . Nilai otorisasi ini dapat diperiksa pada durasi, dan kontrol dapat ditambahkan ke halaman jika filter cocok dengan kriteria yang ditetapkan oleh pengembang.

<%@ Page Language="C#" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="aspSample"%>


<!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 Page_Load(object sender, EventArgs e)
  {
    foreach (WebPart part in mgr1.WebParts)
    {
      if (mgr1.IsAuthorized(part))
        part.ExportMode = WebPartExportMode.All;
    }
    
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ Page Language="vb" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls" 
    TagPrefix="aspSample"%>


<!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 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>

Langkah kedua adalah mengambil alih IsAuthorized(Type, String, String, Boolean) metode , dan membuat penanganan kustom untuk filter otorisasi. Perhatikan bahwa kode pertama-tama memeriksa apakah properti memiliki nilai, sehingga kontrol apa pun yang tidak menetapkan AuthorizationFilter properti akan ditambahkan secara otomatis. Jika kontrol memiliki filter, kode hanya mengembalikan true jika nilai filter sama dengan admin. Ini menunjukkan mekanisme sederhana yang dapat Anda gunakan untuk menampilkan kontrol tertentu kepada pengguna tertentu, tergantung pada peran mereka. Meskipun contoh lengkap menggunakan peran berada di luar cakupan topik ini, Anda dapat menggunakan logika yang sama dengan metode yang ditimpa dalam contoh kode ini, kecuali bahwa Anda dapat memeriksa apakah pengguna saat ini berada dalam peran yang cocok dengan nilai filter otorisasi, lalu menambahkan kontrol hanya untuk pengguna tersebut. Ini akan memungkinkan Anda untuk membuat halaman di mana beberapa pengguna akan melihat semua kontrol, dan pengguna lain hanya akan melihat kontrol yang dipilih. Ini adalah bagaimana logika yang memeriksa filter mungkin terlihat jika Anda menggunakan peran:

If Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter) Then  
  return True  
Else  
  return False  
End If  
if(Roles.IsUserInRole(Page.User.Identity.Name, authorizationFilter))  
    return true;  
else  
    return false;  

Agar contoh kode berjalan, Anda harus mengkompilasi kode sumber ini. Anda dapat mengkompilasinya secara eksplisit dan meletakkan rakitan yang dihasilkan di folder Bin situs Web Anda atau cache perakitan global. Atau, Anda dapat meletakkan kode sumber di folder App_Code situs Anda, di mana kode tersebut akan dikompilasi secara dinamis pada durasi. Contoh kode ini menggunakan metode kompilasi dinamis. Untuk panduan yang menunjukkan cara mengkompilasi, lihat Panduan: Mengembangkan dan Menggunakan Kontrol Server Web Kustom.

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

Setelah Anda memuat halaman di browser, perhatikan bahwa kontrol pertama ditampilkan, karena cocok dengan kriteria dalam metode yang ditimpa. Kontrol kedua tidak ditambahkan ke halaman, karena nilai filternya dikecualikan. Kontrol ketiga ditambahkan, karena tidak memiliki kumpulan propertinya AuthorizationFilter . Jika Anda mengubah nilai properti pada kontrol kedua agar sesuai dengan kontrol pertama, lalu menjalankan halaman lagi, kontrol kedua juga ditambahkan.

Keterangan

Metode IsAuthorized(Type, String, String, Boolean) kelebihan beban melakukan langkah-langkah akhir dalam menentukan apakah kontrol diotorisasi untuk ditambahkan ke halaman. Metode ini memastikan bahwa adalah jenis yang type valid, dan yang memiliki nilai hanya jika kontrol yang path diperiksa adalah kontrol pengguna. Kemudian memanggil metode kritis OnAuthorizeWebPart , yang meningkatkan AuthorizeWebPart peristiwa.

Catatan Bagi Inheritor

Metode ini dapat ditimpa dengan mewarisi dari WebPartManager kelas , jika Anda ingin memberikan penanganan tambahan saat memeriksa otorisasi. Anda mungkin ingin mengambil alih metode untuk memeriksa nilai tertentu dalam authorizationFilter parameter, dan berdasarkan nilai, mengembalikan nilai Boolean yang menentukan apakah kontrol akan ditambahkan ke halaman.

Untuk pengembang halaman yang juga ingin memeriksa filter otorisasi dan memberikan penanganan kustom, ada opsi untuk melakukan ini sebaris di halaman .aspx, atau dalam file code-behind, tanpa harus mewarisi dari kelas apa pun. Anda dapat mendeklarasikan penanganan aktivitas alternatif di halaman untuk OnAuthorizeWebPart(WebPartAuthorizationEventArgs) metode WebPartManager kontrol. Untuk detail selengkapnya dan contohnya OnAuthorizeWebPart(WebPartAuthorizationEventArgs) , lihat metode .

Lihat juga

Berlaku untuk