WebPart.AuthorizationFilter Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur string arbitrer untuk menentukan apakah WebPart kontrol diizinkan untuk ditambahkan ke halaman.
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
Nilai Properti
String yang mengotorisasi kontrol untuk ditambahkan ke halaman Web. Nilai default adalah string kosong ("").
- Atribut
Contoh
Contoh kode berikut menunjukkan penggunaan AuthorizationFilter properti . Ini menunjukkan cara mengatur handler metode kustom untuk AuthorizeWebPart peristiwa, sehingga handler dapat menyediakan kode pemfilteran kustom untuk metode tersebut OnAuthorizeWebPart . Contoh ini akan menjadi cara umum bagi pengembang halaman untuk menyediakan skenario pemfilteran dan otorisasi WebPart kontrol yang akan ditambahkan ke halaman.
Dalam kode halaman Web, perhatikan bahwa <asp:webpartmanager>
elemen memiliki OnAuthorizeWebPart
atribut dengan nama penanganan aktivitas yang ditetapkan untuknya. Metode ini memeriksa apakah kontrol di halaman memiliki nilai propertinya AuthorizationFilter yang diatur ke admin
, dan jika demikian, mengembalikan true
, yang berarti bahwa kontrol akan diotorisasi dan ditambahkan ke halaman.
Catatan
Perhatikan bahwa kontrol yang tidak memiliki nilai apa pun yang ditetapkan ke AuthorizationFilter properti juga ditambahkan, karena mereka diasumsikan tidak menjadi bagian dari skenario pemfilteran. Ini akan menjadi pendekatan umum dalam skenario pemfilteran: beberapa kontrol akan difilter, dan yang lain tidak akan, karena dianggap tersedia untuk semua pengguna.
<%@ 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>
Karena menyiapkan pengguna dalam peran berada di luar cakupan topik ini, contoh kode ini tidak memeriksa peran pengguna dalam pemfilteran. Namun, skenario kontrol pemfilteran menurut peran pengguna kemungkinan menjadi salah satu penggunaan paling umum dari fitur pemfilteran ini. Jika Anda memiliki peran di situs Anda, dan Anda ingin memeriksa peran pengguna dalam metode ini untuk memfilter kontrol, metode akan menyerupai blok kode berikut (versus pendekatan yang lebih sederhana dalam contoh kode sebelumnya yang tidak menggunakan peran).
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;
}
}
Keterangan
Set kontrol Bagian Web tidak menerapkan perilaku default apa pun untuk properti.AuthorizationFilter Namun, properti disediakan sehingga Anda dapat menetapkan nilai string arbitrer ke kontrol kustom WebPart ; properti ini dapat diperiksa oleh WebPartManager kontrol selama peristiwanya AuthorizeWebPart untuk menentukan apakah kontrol dapat ditambahkan ke halaman.
Dalam beberapa kasus, AuthorizationFilter properti mungkin digunakan dengan fitur pengelola peran ASP.NET, sehingga jika pengguna berada dalam peran tertentu, dan jika nilai AuthorizationFilter string properti memenuhi kondisi tertentu yang ditetapkan oleh pengembang, kontrol dapat ditambahkan. Pendekatan ini memungkinkan pengembang untuk membuat tampilan kustom halaman berdasarkan kombinasi peran dan kriteria otorisasi lain yang mereka tentukan.
Properti ini tidak dapat diatur oleh tema atau tema lembar gaya. Untuk informasi selengkapnya, lihat ThemeableAttribute dan ASP.NET Tema dan Kulit.
Cakupan personalisasi properti ini diatur ke Shared dan hanya dapat dimodifikasi oleh pengguna yang berwenang. Untuk informasi selengkapnya, lihat PersonalizableAttribute dan Gambaran Umum Personalisasi Bagian Web.
Catatan Bagi Inheritor
Untuk menggunakan properti ini, Anda harus membuat kontrol kustom WebPartManager , dan mengambil OnAuthorizeWebPart(WebPartAuthorizationEventArgs) alih metode atau metodenya IsAuthorized(WebPart) untuk menangani pemeriksaan AuthorizationFilter properti.