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
IsAuthorized(WebPart) |
Denetimin sayfaya ekleme yetkisi olup olmadığını belirlemeye yönelik ilk adımları yürütür. |
IsAuthorized(Type, String, String, Boolean) |
Denetimin sayfaya ekleme 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) eklenebildiğ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 bölgeye program aracılığıyla eklendiğinde.
Bir kullanıcı bir sunucu denetimini bir 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 DeclarativeCatalogPart sunucu denetimleri kataloğunda kullanılabilir hale getirmek için denetime eklendiğinde.
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 olmadığında 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 nesnesi 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ümesinde bulunan ve geliştiricilerin belirtilen ölçütlere uymayan denetimleri 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 (değer rastgele olabilir) atamalıdır. Ayrıca, denetim olmayan WebPart diğer sunucu denetimi türleri için de bu özelliğe bir değer atayabilirler, çünkü bölgelere WebPartZoneBase yerleştirilirlerse, bu denetimler çalışma zamanında bir GenericWebPart denetimle sarmaılır ve bu denetim özelliği devralır AuthorizationFilter .
Filtreleme senaryosu oluşturmak için gerekli 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 geliştirici özelliğini denetleyebiliyor AuthorizationFilter ve değer denetimin yetkilendirilmemesi gerektiğini gösteriyorsa geliştirici yöntemin değerini döndürmesini IsAuthorizedfalse
sağlar.
Not
Kod örnekleri ve yöntemini kullanarak özelleştirilmiş bir filtreleme senaryosunun nasıl ayarlanacağına IsAuthorized ilişkin bir açıklama için yönteminin aşırı yüklemelerine ilişkin konulara bakın.
IsAuthorized(WebPart)
Denetimin sayfaya ekleme 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
değeridir.
Örnekler
Aşağıdaki kod örneği, bir denetimin IsAuthorized(WebPart) sayfaya eklenme yetkisi olup olmadığını belirlemek için kodunuzdan yönteminin nasıl çağrıldığını gösterir.
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ğinin ö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 bir özellik değerini admin
denetler ve değeri varsa denetimi yetkiler. Bir denetimin farklı bir değeri varsa, yetkili değildir; ö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 kodunu 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 çalışma zamanında dinamik olarak derlenecek App_Code klasörüne yerleştirebilirsiniz. Bu kod örneği dinamik derleme yöntemini kullanır. Derlemeyi gösteren bir kılavuz 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 yetkiliyse her denetimin ExportMode özelliğini ayardığına da 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ış true
bir enableExport
öğe olduğundan emin olun<webParts>
.
<webParts enableExport="true">
...
</webParts>
Sayfayı bir tarayıcıya yükledikten sonra, geçersiz kılınan yöntemdeki ölçütle 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ğundaki fiiller menü simgesine tıklarsanız, ilgili ExportMode özellik değerleri atandığından her ikisinin de dışarı aktarılabildiğini göreceksiniz.
Açıklamalar
IsAuthorized yöntemi, bir WebPart denetimin yetkilendirmesini denetlemek için ayarlanan Web Bölümleri denetimi 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 GenericWebPart denetim olup olmadığını ve varsa, içerdiği alt denetimin türünü 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 programlı denetim 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 ekleme 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, yetkilendirilmekte olan 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 true
ayarlanır.
Döndürülenler
Denetimin sayfaya ekleme yetkisi olup olmadığını gösteren Boole değeri.
Özel durumlar
type
, null
değeridir.
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 ekleme yetkisi olup olmadığını 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 eşitse admin
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. Rollerin kullanıldığı tam bir örnek bu konunun kapsamı dışında olsa da, bu kod örneğindeki geçersiz kılınan yöntemle aynı mantığı kullanabilirsiniz, ancak geçerli kullanıcının yetkilendirme filtresi değeriyle eşleşen bir rolde olup olmadığını denetleyebilirsiniz ve ardından denetimi yalnızca o kullanıcı için ekleyebilirsiniz. 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 çalışma zamanında dinamik olarak derlenecek App_Code klasörüne yerleştirebilirsiniz. Bu kod örneği dinamik derleme yöntemini kullanır. Derlemeyi gösteren bir kılavuz 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ıya yükledikten sonra, geçersiz kılınan yöntemdeki ölçütle eşleştiğinden ilk denetimin görüntülendiğini unutmayın. filtre değeri dışlandığından, ikinci denetim sayfaya eklenmez. Üçüncü denetim, özellik kümesine sahip AuthorizationFilter olmadığından 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 ekleme yetkisi olup olmadığını belirlemede son adımları yürütür. yöntemi, geçerli bir tür olmasını ve yalnızca denetlenen denetimin path
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
Yetkilendirmeyi denetlerken ek işleme sağlamak istiyorsanız, bu yöntem sınıfından WebPartManager devralınarak geçersiz kılınabilir. parametresindeki belirli değerleri authorizationFilter
denetlemek için yöntemini geçersiz kılmak ve değere bağlı olarak 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 dosyasında satır içinde yapma seçeneği vardır. Denetimin yöntemi için OnAuthorizeWebPart(WebPartAuthorizationEventArgs) sayfasında 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