본문 바로가기

.NET/MOSS

WebPart 메서드

WebPartManager.IsAuthorized 메서드 (WebPart)

네임스페이스: System.Web.UI.WebControls.WebParts
어셈블리: System.Web(system.web.dll)

<C#>
public bool IsAuthorized (
    WebPart webPart
)

매개 변수

webPart

권한을 확인할 WebPart 또는 다른 서버 컨트롤입니다.

반환 값

webPart가 페이지에 추가할 수 있는 컨트롤인지 여부를 나타내는 부울 값입니다.
예외 형식조건

ArgumentNullException

webPart가 Null 참조(Visual Basic의 경우 Nothing)인 경우

IsAuthorized 메서드는 웹 파트 컨트롤 집합에서 WebPart 컨트롤이 페이지에 추가할 수 있는
컨트롤인지를 확인하기 위해 호출하는 초기 메서드입니다. 이 메서드는 webPart를 매개 변수로 받고,
컨트롤이 페이지에 추가될지 여부를 확인하기 위한 프로세스를 시작합니다. 특정 컨트롤이 페이지에
추가할 수 있는 컨트롤인지 여부를 확인해야 하는 경우 코드에서 직접 이 메서드를 호출합니다.

이 메서드는 컨트롤이 WebPart 클래스에서 상속되는 컨트롤이나 GenericWebPart 컨트롤인지 여부를
확인하고 이 조건을 만족할 경우 해당 컨트롤에 포함된 자식 컨트롤의 형식을 확인하는 초기 작업을
수행합니다. 권한 확인 작업을 마치려면 IsAuthorized(Type,String,String,Boolean) 오버로드
메서드를 호출합니다.

호출자 참고 사항 이 메서드는 코드에서 직접 호출됩니다. 권한 확인 프로세스를 프로그래밍 방식으로
자세하게 제어하려면 IsAuthorized(Type,String,String,Boolean) 오버로드 메서드를 재정의합니다.

다음 코드 예제에서는 코드에서 IsAuthorized(WebPart) 메서드를 호출하여 컨트롤이 페이지에 추가할
수 있는 컨트롤인지 여부를 확인하는 방법을 보여 줍니다.

이 코드 예제는 세 부분으로 이루어져 있습니다.

  • IsAuthorized 메서드를 재정의하는 사용자 지정 WebPartManager 컨트롤

  • WebPart 컨트롤에 대한 필터를 만드는 웹 페이지

  • 코드 예제를 실행하는 방법에 대한 설명

이 코드 예제에서는 IsAuthorized(Type,String,String,Boolean) 오버로드 메서드를 재정의하여
AuthorizationFilter 속성의 사용자 지정 처리 기능을 제공하는 사용자 지정 WebPartManager 컨트롤을
사용합니다. 이 컨트롤은 속성 값이 admin인지 확인하고 이 값이 있으면 컨트롤에 권한을 부여합니다.
이 속성 값이 다르거나 이 속성 값이 없는 컨트롤은 필터링 시나리오의 일부가 아닌 것으로 간주되어 권한이
부여되지 않습니다.

이 코드 예제를 실행하려면 이 소스 코드를 컴파일해야 합니다. 소스 코드를 명시적으로 컴파일하여 결과
어셈블리를 웹 사이트의 Bin 폴더나 전역 어셈블리 캐시에 둘 수 있습니다. 또는 소스 코드를 사이트의
App_Code 폴더에 두어 런타임에 동적으로 컴파일되도록 할 수 있습니다. 이 코드 예제에서는 동적 컴파일
방법을 사용합니다.






C#
 
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;

    }
  }
}

코드 예제의 두 번째 부분에서는 컨트롤을 잠재적으로 제외시킬 수 있는 필터를 만듭니다.
다음 웹 페이지의 <asp:webpartzone> 요소에는 세 개의 ASP.NET 서버 컨트롤이 들어 있습니다.
첫 번째와 두 번째 컨트롤의 AuthorizationFilter 속성은 서로 다른 값으로 설정되어 있으며
세 번째 컨트롤에는 이 속성이 할당되어 있지 않습니다. 이 권한 값은 런타임에 확인할 수 있으며
개발자가 설정한 조건과 필터가 맞는 경우에 해당 컨트롤을 페이지에 추가할 수 있습니다.
또한 Page_Load 메서드의 코드에서는 IsAuthorized(WebPart) 메서드를 호출하여 각 컨트롤이 페이지에
추가할 수 있는 컨트롤인지 여부를 확인하고, 해당 권한이 있으면 각 컨트롤의 ExportMode 속성을 설정합니다.


출처 : http://msdn2.microsoft.com/ko-kr/library/ms157541(VS.80).aspx ::MSDN