WebPartManager.IsAuthorized Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy WebPart do strony można dodać kontrolkę serwera lub inną.
Przeciążenia
IsAuthorized(WebPart) |
Przeprowadza początkowe kroki w określaniu, czy kontrolka ma zostać dodana do strony. |
IsAuthorized(Type, String, String, Boolean) |
Przeprowadza końcowe kroki w określaniu, czy kontrolka ma zostać dodana do strony. |
Uwagi
Częścią elastyczności funkcji składników Web Part jest możliwość dodawania kontrolek serwera do stron sieci Web w czasie wykonywania. Istnieje wiele typowych scenariuszy, w których można dodać kontrolkę serwera (która może być kontrolką niestandardową, kontrolką serwera niestandardowego WebPart , kontrolką użytkownika lub kontrolką ASP.NET).
W następujących typowych scenariuszach kontrolka składników Web Part próbuje dodać kontrolki serwera do strony, a IsAuthorized metoda jest wywoływana w celu ich autoryzowania:
Po dodaniu kontrolki serwera przez zadeklarowanie jej w znaczniku strony sieci Web w WebPartZoneBase strefie.
Gdy kontrolka serwera jest dodawana programowo do strefy.
Gdy użytkownik importuje kontrolkę serwera do katalogu składników Web Part kontrolek.
Gdy istniejąca kontrolka serwera zostanie załadowana z magazynu danych personalizacji.
Po dodaniu kontrolki serwera do DeclarativeCatalogPart kontrolki w celu udostępnienia jej w katalogu kontrolek serwera.
W każdym scenariuszu, w którym są dodawane kontrolki, metoda jest wywoływana, aby upewnić się, IsAuthorized że wszystkie kryteria autoryzacji zostały spełnione, aby umożliwić dodanie kontrolki. Gdy kontrolka jest autoryzowana, jest ona dodawana normalnie tak, jakby nie było scenariusza filtrowania. Gdy kontrolka nie jest autoryzowana, zestaw kontrolek składników Web Part może odpowiadać na kilka sposobów, w zależności od kontekstu. Zestaw kontrolek może dyskretnie nie dodać nieautoryzowanej części (jeśli nie ma potrzeby informowania użytkownika), może wyświetlić komunikat o błędzie lub dodać wystąpienie UnauthorizedWebPart klasy jako symbol zastępczy. Ten obiekt zastępczy nie jest widoczny na stronie, ale jest widoczny w kodzie źródłowym strony, aby wskazać, że nieautoryzowana kontrolka została wykluczona.
Określenie, czy kontrolka jest autoryzowana, to filtr autoryzacji. Filtr autoryzacji to funkcja w zestawie kontrolek składników Web Part, która umożliwia deweloperom wykluczanie ze strony wszystkich kontrolek, które nie spełniają określonych kryteriów.
Aby utworzyć scenariusz filtrowania, deweloperzy muszą wykonać dwie czynności. Najpierw muszą przypisać wartość ciągu (wartość może być dowolna) do AuthorizationFilter właściwości każdej WebPart kontrolki, której planuje użyć w scenariuszu. Mogą również przypisać wartość do tej właściwości dla innych typów kontrolek serwera, które nie WebPart są kontrolkami, ponieważ jeśli są umieszczone w WebPartZoneBase strefach, takie kontrolki są opakowane z kontrolką GenericWebPart w czasie wykonywania, a ta kontrolka dziedziczy AuthorizationFilter właściwość.
Drugim krokiem niezbędnym do utworzenia scenariusza filtrowania jest zastąpienie IsAuthorized(Type, String, String, Boolean) metody lub utworzenie procedury obsługi zdarzeń dla AuthorizeWebPart zdarzenia. W tych metodach deweloper może sprawdzić AuthorizationFilter właściwość, a jeśli wartość wskazuje, że kontrolka nie powinna być autoryzowana, deweloper zapewnia, że IsAuthorized metoda zwraca wartość false
.
Uwaga
Przykłady kodu i opis sposobu konfigurowania dostosowanego scenariusza filtrowania przy użyciu IsAuthorized metody można znaleźć w tematach dotyczących przeciążeń metody .
IsAuthorized(WebPart)
Przeprowadza początkowe kroki w określaniu, czy kontrolka ma zostać dodana do strony.
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
Parametry
- webPart
- WebPart
Kontrola WebPart serwera lub inna kontrola serwera jest sprawdzana pod kątem autoryzacji.
Zwraca
Wartość logiczna wskazująca, czy webPart
można dodać do strony.
Wyjątki
webPart
to null
.
Przykłady
Poniższy przykład kodu pokazuje, jak wywołać metodę IsAuthorized(WebPart) z kodu, aby określić, czy kontrolka ma być autoryzowana do dodania do strony.
Przykładowy kod ma trzy części:
Niestandardowa WebPartManager kontrolka, która zastępuje metodę IsAuthorized .
Strona sieci Web, która tworzy filtr dla kontrolki WebPart .
Wyjaśnienie sposobu uruchamiania przykładu kodu.
W tym przykładzie kodu użyto niestandardowej WebPartManager kontrolki, która zastępuje IsAuthorized(Type, String, String, Boolean) metodę przeciążenia w celu zapewnienia niestandardowej AuthorizationFilter obsługi właściwości. Ta kontrolka sprawdza wartość admin
właściwości i, jeśli wartość jest obecna, autoryzuje kontrolkę. Jeśli kontrolka ma inną wartość, nie jest autoryzowana; kontrolki bez wartości właściwości są również autoryzowane, ponieważ zakłada się, że nie są częścią scenariusza filtrowania.
Aby ten przykład kodu został uruchomiony, należy skompilować ten kod źródłowy. Można je jawnie skompilować i umieścić wynikowy zestaw w folderze Bin witryny sieci Web lub globalnej pamięci podręcznej zestawów. Możesz też umieścić kod źródłowy w folderze App_Code witryny, w którym będzie dynamicznie kompilowany w czasie wykonywania. W tym przykładzie kodu użyto metody kompilacji dynamicznej. Aby zapoznać się z przewodnikiem, który pokazuje, jak skompilować, zobacz Przewodnik: opracowywanie i używanie niestandardowej kontrolki serwera sieci Web.
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
Druga część przykładu kodu tworzy filtr, który może potencjalnie wykluczyć kontrolkę. Poniższa strona sieci Web zawiera trzy kontrolki serwera ASP.NET w elemecie <asp:webpartzone>
. Zwróć uwagę, że pierwsze i drugie kontrolki mają ich AuthorizationFilter właściwości ustawione na różne wartości, a trzecia nie przypisuje właściwości. Tę wartość autoryzacji można sprawdzić w czasie wykonywania, a kontrolkę można dodać do strony, jeśli filtr pasuje do kryteriów ustawionych przez dewelopera. Zwróć również uwagę, że w metodzie Page_Load
kod wywołuje metodę IsAuthorized(WebPart) w celu określenia, czy każda z kontrolek jest autoryzowana, a jeśli tak, ustawia właściwość każdej kontrolki 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>
Należy pamiętać, że aby przykładowy kod działał, należy dodać ustawienie w pliku Web.config, aby włączyć eksportowanie plików opisu składników Web Part. Upewnij się, że masz plik Web.config w tym samym katalogu co strona sieci Web dla tego przykładu kodu.
<system.web>
W sekcji upewnij się, że istnieje <webParts>
element z atrybutem ustawionym enableExport
na true
, jak w poniższym znaczniku.
<webParts enableExport="true">
...
</webParts>
Po załadowaniu strony w przeglądarce należy pamiętać, że pierwsza kontrolka jest wyświetlana, ponieważ jest zgodna z kryteriami w metodzie przesłonięcia. Druga kontrolka nie jest dodawana do strony, ponieważ jest wykluczona przez filtr. Dodano również trzecią kontrolkę, ponieważ nie ma ustawionej właściwości AuthorizationFilter . Zwróć uwagę, że po kliknięciu ikony menu czasowników na pasku tytułu każdej kontrolki można je wyeksportować, ponieważ zostały przypisane odpowiednie ExportMode wartości właściwości.
Uwagi
Metoda IsAuthorized jest początkową metodą wywoływaną przez kontrolkę składników Web Part ustawioną w celu sprawdzenia autoryzacji dla kontrolki WebPart .
webPart
Przyjmuje jako parametr i rozpoczyna proces, który ostatecznie określa, czy kontrolka zostanie dodana do strony. Wywołaj tę metodę bezpośrednio z kodu, gdy musisz określić, czy dana kontrolka jest autoryzowana.
Ta metoda wykonuje początkowe zadania określania, czy kontrolka dziedziczy z WebPart klasy, czy jest kontrolką GenericWebPart , a jeśli tak, jaki typ kontrolki podrzędnej zawiera. Aby zakończyć zadanie autoryzacji, wywołuje metodę IsAuthorized(Type, String, String, Boolean) przeciążenia.
Uwagi dotyczące wywoływania
Ta metoda jest wywoływana bezpośrednio z kodu. Jeśli chcesz uzyskać większą kontrolę programową nad procesem autoryzacji, możesz zastąpić metodę IsAuthorized(Type, String, String, Boolean) przeciążenia.
Zobacz też
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- kontrolki składników Web Part ASP.NET
Dotyczy
IsAuthorized(Type, String, String, Boolean)
Przeprowadza końcowe kroki w określaniu, czy kontrolka ma zostać dodana do strony.
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
Parametry
- path
- String
Względna ścieżka aplikacji do pliku źródłowego dla autoryzowanej kontrolki, jeśli kontrolka jest kontrolką użytkownika.
- authorizationFilter
- String
Dowolna wartość ciągu przypisana do AuthorizationFilter właściwości kontrolki WebPart , używana do autoryzacji, czy można dodać kontrolkę do strony.
- isShared
- Boolean
Wskazuje, czy kontrolka sprawdzana pod kątem autoryzacji jest kontrolką współdzieloną, co oznacza, że jest widoczna dla wielu lub wszystkich użytkowników aplikacji, a jej IsShared wartość właściwości ma wartość true
.
Zwraca
Wartość logiczna wskazująca, czy kontrolka ma zostać dodana do strony.
Wyjątki
type
to null
.
type
jest kontrolką użytkownika i path
jest null
ciągiem pustym ("").
-lub-
type
nie jest kontrolką użytkownika i path
ma przypisaną do niej wartość.
Przykłady
W poniższym przykładzie kodu pokazano, jak zastąpić IsAuthorized metodę w celu określenia, czy kontrolka ma zostać dodana do strony.
Pierwszym krokiem jest utworzenie filtru, który może potencjalnie wykluczyć kontrolkę. Poniższa strona sieci Web zawiera trzy kontrolki serwera ASP.NET w elemecie <asp:webpartzone>
. Zwróć uwagę, że pierwsze i drugie kontrolki mają ich AuthorizationFilter właściwości ustawione na różne wartości, a trzecia nie przypisuje właściwości. Tę wartość autoryzacji można sprawdzić w czasie wykonywania, a kontrolkę można dodać do strony, jeśli filtr pasuje do kryteriów ustawionych przez dewelopera.
<%@ 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>
Drugim krokiem jest zastąpienie metody i utworzenie niestandardowej IsAuthorized(Type, String, String, Boolean) obsługi filtrów autoryzacji. Należy pamiętać, że kod najpierw sprawdza, czy właściwość ma wartość, dzięki czemu każda kontrolka, która nie przypisuje AuthorizationFilter właściwości, zostanie dodana automatycznie. Jeśli kontrolka ma filtr, kod zwraca true
wartość tylko wtedy, gdy wartość filtru jest równa admin
. Pokazuje to prosty mechanizm, którego można użyć do wyświetlania niektórych kontrolek niektórym użytkownikom w zależności od ich roli. Chociaż pełny przykład użycia ról wykracza poza zakres tego tematu, możesz użyć tej samej logiki co metoda przesłonięć w tym przykładzie kodu, z wyjątkiem tego, że można sprawdzić, czy bieżący użytkownik znajduje się w roli zgodnej z wartością filtru autoryzacji, a następnie dodać kontrolkę tylko dla tego użytkownika. Umożliwiłoby to tworzenie stron, na których niektórzy użytkownicy będą widzieć wszystkie kontrolki, a inni użytkownicy będą widzieć tylko wybrane kontrolki. W ten sposób logika sprawdzająca filtr może wyglądać, jeśli użyto ról:
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;
Aby przykład kodu został uruchomiony, należy skompilować ten kod źródłowy. Można je jawnie skompilować i umieścić wynikowy zestaw w folderze Bin witryny sieci Web lub globalnej pamięci podręcznej zestawów. Możesz też umieścić kod źródłowy w folderze App_Code witryny, w którym będzie dynamicznie kompilowany w czasie wykonywania. W tym przykładzie kodu użyto metody kompilacji dynamicznej. Aby zapoznać się z przewodnikiem, który pokazuje, jak skompilować, zobacz Przewodnik: opracowywanie i używanie niestandardowej kontrolki serwera sieci Web.
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
Po załadowaniu strony w przeglądarce należy pamiętać, że pierwsza kontrolka jest wyświetlana, ponieważ jest zgodna z kryteriami w metodzie przesłonięcia. Druga kontrolka nie jest dodawana do strony, ponieważ jej wartość filtru jest wykluczona. Trzecia kontrolka jest dodawana, ponieważ nie ma ustawionej właściwości AuthorizationFilter . Jeśli zmienisz wartość właściwości w drugiej kontrolce tak, aby odpowiadała pierwszej kontrolce, a następnie ponownie uruchomisz stronę, zostanie również dodana druga kontrolka.
Uwagi
Metoda IsAuthorized(Type, String, String, Boolean) przeciążenia wykonuje ostatnie kroki w określaniu, czy kontrolka ma zostać dodana do strony. Metoda gwarantuje, że type
jest prawidłowym typem i ma path
wartość tylko wtedy, gdy sprawdzana kontrolka jest kontrolką użytkownika. Następnie wywołuje metodę krytyczną OnAuthorizeWebPart , która zgłasza AuthorizeWebPart zdarzenie.
Uwagi dotyczące dziedziczenia
Ta metoda może zostać zastąpiona przez dziedziczenie z WebPartManager klasy, jeśli chcesz zapewnić dodatkową obsługę podczas sprawdzania autoryzacji. Możesz zastąpić metodę, aby sprawdzić określone wartości w parametrze authorizationFilter
i na podstawie wartości, zwrócić wartość logiczną określającą, czy kontrolka zostanie dodana do strony.
W przypadku deweloperów stron, którzy chcą również sprawdzić filtry autoryzacji i zapewnić obsługę niestandardową, istnieje opcja wykonywania tej czynności w tekście na stronie .aspx lub w pliku za kodem bez konieczności dziedziczenia z jakiejkolwiek klasy. Możesz zadeklarować alternatywną procedurę obsługi zdarzeń na stronie dla OnAuthorizeWebPart(WebPartAuthorizationEventArgs) metody kontrolki WebPartManager . Aby uzyskać więcej szczegółów i przykład, zobacz metodę OnAuthorizeWebPart(WebPartAuthorizationEventArgs) .
Zobacz też
- AuthorizationFilter
- AuthorizeWebPart
- OnAuthorizeWebPart(WebPartAuthorizationEventArgs)
- kontrolki składników Web Part ASP.NET