다음을 통해 공유


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>

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

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.

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

상속자 참고

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

적용 대상

추가 정보