WebPart.AuthorizationFilter 속성

정의

WebPart 컨트롤이 페이지에 추가할 수 있는 컨트롤인지 여부를 나타낼 임의의 문자열을 가져오거나 설정합니다.

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

속성 값

컨트롤이 웹 페이지에 추가할 수 있는 컨트롤인지를 나타내는 문자열입니다. 기본값은 빈 문자열("")입니다.

특성

예제

다음 코드 예제에서는 AuthorizationFilter 속성입니다. 처리기가 메서드에 대한 사용자 지정 필터링 코드를 제공할 수 있도록 이벤트에 대한 AuthorizeWebPartOnAuthorizeWebPart 사용자 지정 메서드 처리기를 설정하는 방법을 보여줍니다. 이 예제는 페이지 개발자가 필터링 시나리오 및 페이지에 추가할 컨트롤의 WebPart 권한 부여를 제공하는 일반적인 방법입니다.

웹 페이지 코드에서 요소 OnAuthorizeWebPart 에는 <asp:webpartmanager> 할당된 이벤트 처리기의 이름을 가진 특성이 있습니다. 이 메서드는 페이지의 컨트롤에 속성 AuthorizationFilter 값이 로 설정되어 admin있는지 확인하고, 이면 가 반환 true됩니다. 즉, 권한이 부여되고 페이지에 추가됩니다.

참고

속성에 할당된 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>

역할에서 사용자를 설정하는 것은 이 항목의 scope 벗어나므로 이 코드 예제에서는 필터링에서 사용자 역할을 검사 않습니다. 그러나 사용자 역할에 따라 컨트롤을 필터링하는 시나리오는 이 필터링 기능의 가장 일반적인 사용 중 하나일 수 있습니다. 사이트에 역할이 있고 이 메서드의 사용자 역할을 검사 컨트롤을 필터링하려는 경우 메서드는 다음 코드 블록과 유사합니다(역할을 사용하지 않는 이전 코드 예제의 간단한 방법과 비교).

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;  
  }  
}  

설명

웹 파트 컨트롤 집합에 대 한 기본 동작을 구현 하지 않습니다는 AuthorizationFilter 속성입니다. 그러나 속성은 사용자 지정 WebPart 컨트롤에 임의의 문자열 값을 할당할 수 있도록 제공됩니다. 이 속성은 이벤트 중에 AuthorizeWebPart 컨트롤에서 WebPartManager 확인하여 컨트롤을 페이지에 추가할 수 있는지 여부를 확인할 수 있습니다.

경우에 따라 AuthorizationFilter 속성을 ASP.NET 역할 관리자 기능과 함께 사용할 수 있으므로 사용자가 특정 역할에 있고 속성의 AuthorizationFilter 문자열 값이 개발자가 설정한 특정 조건을 충족하는 경우 컨트롤을 추가할 수 있습니다. 이 방법을 사용하면 개발자가 지정한 역할 및 기타 권한 부여 조건의 조합에 따라 페이지의 사용자 지정 보기를 만들 수 있습니다.

이 속성은 테마 또는 스타일시트 테마에 의해 설정될 수 없습니다. 자세한 내용은 ThemeableAttribute 하 고 ASP.NET 테마 및 스킨합니다.

이 속성의 개인 설정 scope 로 Shared 설정되며 권한 있는 사용자만 수정할 수 있습니다. 자세한 내용은 및 웹 파트 개인 설정 개요를 참조 PersonalizableAttribute 하세요.

상속자 참고

이 속성을 사용하려면 사용자 지정 WebPartManager 컨트롤을 만들고 해당 메서드 또는 IsAuthorized(WebPart) 해당 OnAuthorizeWebPart(WebPartAuthorizationEventArgs) 메서드를 재정의하여 속성에 대한 AuthorizationFilter 검사 처리해야 합니다.

적용 대상

추가 정보