다음을 통해 공유


WebPartManager.AuthorizeWebPart 이벤트

정의

IsAuthorized 또는 서버 컨트롤이 페이지에 추가할 수 있는 컨트롤인지 여부를 확인하기 위해 WebPart 메서드가 호출될 때 발생합니다.

public:
 event System::Web::UI::WebControls::WebParts::WebPartAuthorizationEventHandler ^ AuthorizeWebPart;
public event System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler AuthorizeWebPart;
member this.AuthorizeWebPart : System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventHandler 
Public Custom Event AuthorizeWebPart As WebPartAuthorizationEventHandler 

이벤트 유형

예제

다음 코드 예제에서는 자동으로 기본 OnAuthorizeWebPart 메서드를 재정의 AuthorizeWebPart 하는 이벤트에 대 한 사용자 지정 이벤트 처리기를 설정 하는 방법을 보여 줍니다.

메서드의 mgr1_AuthorizeWebPart 코드는 페이지의 컨트롤에 해당 AuthorizationFilter 속성 값이 로 설정되어 user 있는지 확인하고, 이 경우 을 반환 true합니다. 즉, 권한이 부여되고 페이지에 추가됩니다. 기본 방법은 사용자가 사용자 개인 설정 범위의 페이지로 컨트롤을 볼 수 있도록 하는 것이라고 가정합니다. 그러나 예제에서 컨트롤 중 하나에는 속성 값이 AuthorizationFilter 로 설정되어 admin있습니다. 개발자는 관리 사용자만 볼 수 있도록 설계된 특수 컨트롤에 이 필터를 배치할 수 있습니다. 이 컨트롤은 이벤트 중에 권한 부여 검사에 AuthorizeWebPart 실패하고 표시되지 않습니다. 속성 집합이 없는 컨트롤도 표시됩니다. 속성이 설정되지 않았기 때문에 AuthorizationFilter 필터링 시나리오에 속하지 않는 것으로 간주됩니다.

<%@ 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>

설명

이벤트는 AuthorizeWebPart 컨트롤이 WebPart 페이지에 추가될 때마다 발생합니다. 컨트롤을 페이지에 추가할 수 있는 일반적인 시나리오가 많이 있습니다. 이에 대한 전체 설명은 메서드에 대한 설명 섹션을 IsAuthorized 참조하세요. 컨트롤이 추가되면 해당 AuthorizationFilter 속성이 설정되었는지 여부와 컨트롤을 페이지에 추가할 권한이 있는지 여부를 확인해야 합니다.

개발자는 이벤트에 대한 AuthorizeWebPart 이벤트 처리기를 만들어 컨트롤에 대한 필터링을 제공할 수 있습니다. 컨트롤의 AuthorizationFilter 속성 값이 이벤트 처리기 코드의 조건을 충족하지 않으면 컨트롤이 페이지에 추가되지 않습니다.

적용 대상

추가 정보