WebPartManager.IsAuthorized Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sayfaya bir veya başka bir WebPart sunucu denetiminin eklenip eklenemeyeceğini belirler.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| IsAuthorized(WebPart) |
Denetimin sayfaya eklenme yetkisi olup olmadığını belirlemeye yönelik ilk adımları yürütür. |
| IsAuthorized(Type, String, String, Boolean) |
Denetimin sayfaya eklenme yetkisi olup olmadığını belirlemeye yönelik son adımları yürütür. |
Açıklamalar
Web Bölümleri özelliğinin esnekliğinin bir parçası, çalışma zamanında Web sayfalarına sunucu denetimleri ekleyebilme özelliğidir. Bir sunucu denetiminin (özel denetim, özel WebPart sunucu denetimi, kullanıcı denetimi veya ASP.NET denetimi) eklenebileceği bir dizi yaygın senaryo vardır.
Aşağıdaki yaygın senaryolarda, Web Bölümleri denetim kümesi bir sayfaya sunucu denetimleri eklemeye çalışır ve IsAuthorized bunları yetkilendirmek için yöntemi çağrılır:
Bir sunucu denetimi, bölge içindeki WebPartZoneBase bir Web sayfasının işaretlemesine bildirilerek eklendiğinde.
Bir sunucu denetimi bir bölgeye program aracılığıyla eklendiğinde.
Bir kullanıcı bir sunucu denetimini web bölümleri denetim kataloğuna aktardığında.
Kişiselleştirme veri deposundan mevcut bir sunucu denetimi yüklendiğinde.
Bir sunucu denetimi, bir sunucu denetimleri kataloğunda kullanılabilir hale getirmek için denetime eklendiğinde DeclarativeCatalogPart .
Denetimlerin eklendiği her senaryoda, bir denetimin IsAuthorized eklenmesine izin vermek için tüm yetkilendirme ölçütlerinin karşılandığından emin olmak için yöntemi çağrılır. Bir denetim yetkilendirildiğinde, filtreleme senaryosu yoksa olduğu gibi normal şekilde eklenir. Denetim yetkilendirilmediğinde, Web Bölümleri denetim kümesi bağlama bağlı olarak çeşitli şekillerde yanıt verebilir. Denetim kümesi sessizce yetkisiz bir bölüm ekleyemez (kullanıcıyı bilgilendirmeye gerek yoksa), bir hata iletisi görüntüleyebilir veya sınıfın UnauthorizedWebPart bir örneğini yer tutucu olarak ekleyebilir. Bu yer tutucu nesne sayfada görünmez, ancak yetkisiz bir denetimin dışlandığını belirtmek için sayfa kaynak kodunda görünür.
Bir denetimin yetkilendirilip yetkilendirilmediğini belirleyen, yetkilendirme filtresidir. Yetkilendirme filtresi, Web Bölümleri denetim kümesindeki geliştiricilerin belirtilen ölçütlere uymayan tüm denetimleri bir sayfadan dışlamalarına olanak tanıyan bir özelliktir.
Filtreleme senaryosu oluşturmak için geliştiricilerin iki şey yapması gerekir. İlk olarak, senaryoda kullanmayı planladıkları her WebPart denetimin AuthorizationFilter özelliğine bir dize değeri atamaları gerekir (değer rastgele olabilir). Ayrıca, denetim olmayan WebPart diğer sunucu denetimleri türleri için de bu özelliğe bir değer atayabilirler, çünkü bölgelere yerleştirilirlerse WebPartZoneBase , bu tür denetimler çalışma zamanında bir GenericWebPart denetimle sarmalenir ve bu denetim özelliği devralır AuthorizationFilter .
Filtreleme senaryosu oluşturmak için gereken ikinci adım, yöntemini geçersiz kılmak IsAuthorized(Type, String, String, Boolean) veya olay için bir olay işleyicisi oluşturmaktır AuthorizeWebPart . Bu yöntemlerde bir geliştirici özelliği denetleyebiliyor AuthorizationFilter ve değer denetimin yetkilendirilmemesi gerektiğini belirtiyorsa, geliştirici yöntemin değerini döndürmesini IsAuthorizedfalsesağlar.
Uyarı
Kod örnekleri ve yöntemini kullanarak özelleştirilmiş bir filtreleme senaryosunun nasıl ayarlanacağına IsAuthorized ilişkin bir açıklama için yöntemin aşırı yüklemeleriyle ilgili konulara bakın.
IsAuthorized(WebPart)
Denetimin sayfaya eklenme yetkisi olup olmadığını belirlemeye yönelik ilk adımları yürütür.
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
Parametreler
Döndürülenler
Sayfaya eklenip webPart eklenemeyeceğini gösteren Boole değeri.
Özel durumlar
webPart, null'e eşittir.
Örnekler
Aşağıdaki kod örneğinde, bir denetimin IsAuthorized(WebPart) sayfaya ekleme yetkisi olup olmadığını belirlemek için kodunuzdan yönteminin nasıl çağrılacağı gösterilmektedir.
Kod örneğinin üç bölümü vardır:
yöntemini geçersiz kılan IsAuthorized özel WebPartManager bir denetim.
Denetim için filtre oluşturan bir WebPart Web sayfası.
Kod örneğinin nasıl çalıştırıldığından bir açıklama.
Bu kod örneği, özelliğin özel WebPartManager işlenmesini AuthorizationFilter sağlamak için aşırı yükleme yöntemini geçersiz kılan IsAuthorized(Type, String, String, Boolean) özel bir denetim kullanır. Bu denetim, ve özelliğinin admin değerini denetler ve değer varsa denetimi yetkiler. Denetim farklı bir değere sahipse yetkilendirilmemiştir; özellik değeri olmayan denetimler de yetkilendirilmiştir ve filtreleme senaryosunun bir parçası olmadığı varsayılır.
Bu kod örneğinin çalışması için bu kaynak kodu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne yerleştirebilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Bu kod örneği dinamik derleme yöntemini kullanır. Derlemeyi gösteren bir izlenecek yol için bkz . İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.
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
Kod örneğinin ikinci bölümü, bir denetimi dışlama olasılığı olan bir filtre oluşturur. Aşağıdaki Web sayfası bir <asp:webpartzone> öğede üç ASP.NET sunucu denetimi içerir. Birinci ve ikinci denetimlerin AuthorizationFilter özellikleri farklı değerlere ayarlanmıştır ve üçüncüsü özelliği atamaz. Bu yetkilendirme değeri çalışma zamanında denetlenebilir ve filtre geliştirici tarafından ayarlanan ölçütlere uyuyorsa denetim sayfaya eklenebilir. Ayrıca yönteminde Page_Load kodun, denetimlerin her birinin yetkilendirilip yetkilendirilmediğini belirlemek için yöntemini çağırdığına IsAuthorized(WebPart) ve varsa her denetimin ExportMode özelliğini ayarlayıp ayarlamadığına dikkat edin.
<%@ 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>
Kod örneğinin çalışması için Web Bölümleri açıklama dosyalarını dışarı aktarmayı etkinleştirmek için Web.config dosyasına bir ayar eklemeniz gerektiğini unutmayın. Bu kod örneğinin Web sayfasıyla aynı dizinde bir Web.config dosyanız olduğundan emin olun.
<system.web> bölümünde, aşağıdaki işaretlemede olduğu gibi özniteliği olarak ayarlanmış truebir enableExport öğe olduğundan emin olun<webParts>.
<webParts enableExport="true">
...
</webParts>
Sayfayı bir tarayıcıda yükledikten sonra, geçersiz kılınan yöntemdeki ölçütlere eşleştiğinden ilk denetimin görüntülendiğini unutmayın. İkinci denetim, filtre tarafından dışlandığından sayfaya eklenmez. Üçüncü denetim de eklenir çünkü özellik kümesi yoktur AuthorizationFilter . Her iki denetimin başlık çubuğunda fiiller menü simgesine tıklarsanız, ilgili ExportMode özellik değerleri atandığından her ikisinin de dışarı aktarılabildiğine dikkat edin.
Açıklamalar
IsAuthorized yöntemi, bir denetimin yetkilendirmesini denetlemek için WebPart Web Bölümleri denetim kümesi tarafından çağrılan ilk yöntemdir. Parametre olarak kabul eder webPart ve sonunda denetimin bir sayfaya eklenip eklenmeyeceğini belirleyen bir işlem başlatır. Belirli bir denetimin yetkilendirilip yetkilendirilmediğini belirlemeniz gerektiğinde doğrudan kodunuzdan bu yöntemi çağırabilirsiniz.
Bu yöntem, denetimin sınıftan devralınıp devralmadığını WebPart veya bir denetim olup olmadığını ve varsa ne tür bir GenericWebPart alt denetim içerdiğini belirlemeye yönelik ilk görevleri yürütür. Yetkilendirme görevini tamamlamak için aşırı yükleme yöntemini çağırır IsAuthorized(Type, String, String, Boolean) .
Arayanlara Notlar
Bu yöntem doğrudan kodunuzdan çağrılır. Yetkilendirme işlemi üzerinde daha fazla program denetimi elde etmek istiyorsanız aşırı yükleme yöntemini geçersiz kılabilirsiniz IsAuthorized(Type, String, String, Boolean) .
Ayrıca bkz.
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- Web Bölümleri Denetimlerini ASP.NET
Şunlara uygulanır
IsAuthorized(Type, String, String, Boolean)
Denetimin sayfaya eklenme yetkisi olup olmadığını belirlemeye yönelik son adımları yürütür.
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
Parametreler
- path
- String
Denetim bir kullanıcı denetimiyse, yetkili denetimin kaynak dosyasının göreli uygulama yolu.
- authorizationFilter
- String
Denetimin bir sayfaya eklenip eklenemeyeceğini AuthorizationFilter yetkilendirmek için kullanılan, denetimin WebPart özelliğine atanan rastgele dize değeri.
- isShared
- Boolean
Yetkilendirme için denetlenen denetimin paylaşılan bir denetim olup olmadığını gösterir; başka bir deyişle uygulamanın birçok veya tüm kullanıcıları tarafından görülebilir ve IsShared özellik değeri olarak trueayarlanır.
Döndürülenler
Denetimin sayfaya eklenme yetkisi olup olmadığını gösteren Boole değeri.
Özel durumlar
type, null'e eşittir.
type bir kullanıcı denetimidir ve path ya da null boş bir dizedir ("").
-veya-
type bir kullanıcı denetimi değildir ve path buna atanmış bir değere sahiptir.
Örnekler
Aşağıdaki kod örneği, bir denetimin IsAuthorized sayfaya eklenmesine izin verilip verilmeyeceğini belirlemek için yönteminin nasıl geçersiz kılındığını gösterir.
İlk adım, bir denetimi dışlama olasılığı olan bir filtre oluşturmaktır. Aşağıdaki Web sayfası bir <asp:webpartzone> öğede üç ASP.NET sunucu denetimi içerir. Birinci ve ikinci denetimlerin AuthorizationFilter özellikleri farklı değerlere ayarlanmıştır ve üçüncüsü özelliği atamaz. Bu yetkilendirme değeri çalışma zamanında denetlenebilir ve filtre geliştirici tarafından ayarlanan ölçütlere uyuyorsa denetim sayfaya eklenebilir.
<%@ 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>
İkinci adım, yöntemini geçersiz kılmak IsAuthorized(Type, String, String, Boolean) ve yetkilendirme filtreleri için özel işleme oluşturmaktır. Kodun önce özelliğin bir değeri olup olmadığını denetlediğini, böylece özelliği atamayan tüm denetimlerin AuthorizationFilter otomatik olarak ekleneceğini unutmayın. Bir denetimin filtresi varsa, kod yalnızca filtre değeri değerine admineşitse döndürürtrue. Bu, rollerine bağlı olarak belirli kullanıcılara belirli denetimleri görüntülemek için kullanabileceğiniz basit bir mekanizmayı gösterir. Rolleri kullanan tam bir örnek bu konunun kapsamı dışında olsa da, geçerli kullanıcının yetkilendirme filtresi değeriyle eşleşen bir rolde olup olmadığını denetleyebildiğiniz ve ardından denetimi yalnızca o kullanıcı için ekleyebileceğiniz dışında, bu kod örneğindeki geçersiz kılınan yöntemle aynı mantığı kullanabilirsiniz. Bu, bazı kullanıcıların tüm denetimleri, diğer kullanıcıların ise yalnızca seçili denetimleri görebileceği sayfalar oluşturmanıza olanak tanır. Rolleri kullandıysanız filtreyi denetleen mantık şöyle görünebilir:
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;
Kod örneğinin çalışması için bu kaynak kodu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne yerleştirebilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Bu kod örneği dinamik derleme yöntemini kullanır. Derlemeyi gösteren bir izlenecek yol için bkz . İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.
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
Sayfayı bir tarayıcıda yükledikten sonra, geçersiz kılınan yöntemdeki ölçütlere eşleştiğinden ilk denetimin görüntülendiğini unutmayın. İkinci denetim, filtre değeri dışlandığından sayfaya eklenmez. Üçüncü denetim, özelliği ayarlanmadığından AuthorizationFilter eklenir. İkinci denetimdeki özellik değerini ilk denetiminkiyle eşleşecek şekilde değiştirir ve sonra sayfayı yeniden çalıştırırsanız, ikinci denetim de eklenir.
Açıklamalar
IsAuthorized(Type, String, String, Boolean) aşırı yükleme yöntemi, bir denetimin sayfaya eklenme yetkisi olup olmadığını belirlemeye yönelik son adımları yürütür. yöntemi, geçerli bir tür olmasını ve yalnızca denetlenen path denetimin bir kullanıcı denetimi olması durumunda bir değere sahip olmasını sağlartype. Ardından olayı tetikleyen AuthorizeWebPart kritik OnAuthorizeWebPart yöntemini çağırır.
Devralanlara Notlar
Yetkilendirme denetlenirken ek işleme sağlamak istiyorsanız, bu yöntem sınıfından WebPartManager devralınarak geçersiz kılınabilir. parametresindeki authorizationFilter belirli değerleri denetlemek için yöntemini geçersiz kılmak ve değeri temel alarak denetimin sayfaya eklenip eklenmeyeceğini belirleyen bir Boole değeri döndürmek isteyebilirsiniz.
Yetkilendirme filtrelerini denetlemek ve özel işleme sağlamak isteyen sayfa geliştiricileri için, bu işlemi herhangi bir sınıftan devralmak zorunda kalmadan bir .aspx sayfasında veya arka planda kod içeren bir dosyada satır içinde yapma seçeneği vardır. Denetimin yöntemi için OnAuthorizeWebPart(WebPartAuthorizationEventArgs) sayfada alternatif bir olay işleyicisi WebPartManager bildirebilirsiniz. Daha fazla ayrıntı ve örnek için yöntemine OnAuthorizeWebPart(WebPartAuthorizationEventArgs) bakın.
Ayrıca bkz.
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- Web Bölümleri Denetimlerini ASP.NET