다음을 통해 공유


보안 및 신뢰

.NET Framework에는 원본에 따라 애플리케이션을 다르게 처리하는 보안 모델이 있습니다. 사용자 컴퓨터의 실행 파일 및 어셈블리는 일반적으로 완전 신뢰로 실행됩니다. 인터넷을 통해 실행되는 동일한 실행 파일과 어셈블리는 일반적으로 부분 신뢰로 실행됩니다. 이는 악성 코드가 로컬 파일, 클립보드의 항목 및 기타 리소스와 같이 액세스 권한이 없어야 하는 정보를 읽거나 수정하지 못하도록 하기 위한 것입니다. 실행 파일이 어셈블리를 호출하여 특정 수준의 신뢰가 필요한 다른 어셈블리를 호출하는 경우 체인에 있는 모든 구성 요소의 가장 낮은 신뢰 수준이 적용됩니다. 그러나 컴퓨터의 관리자는 기본 사용 권한을 재정의하는 특정 권한을 설정할 수 있습니다.

보안 모델에 대한 개요는 Secure, Light-Weight Client-Side Controls제공되며, Code Access Security in Practice보안 모델에 대한 자세한 내용을 확인할 수 있습니다. 라이브러리 보안에 대한 좋은 개요(웹 페이지의 UserControl 개체에 특히 중요)는 부분적으로 신뢰할 수 있는 코드 라이브러리를 사용하는찾을 수 있으며 관리되는 컨트롤에 대한 기타 보안 정보는 보안 관리 컨트롤 작성찾을 수 있습니다.

권한을

Tablet PC Technologies API의 대부분의 관리되는 개체와 멤버에는 다음 두 가지 요구 사항이 있습니다.

  • 실행은 항상 필요합니다.
  • FullTrust는 InheritanceDemand 보안 작업이 수행될 때 필요합니다. 즉, 파생 클래스가 클래스를 상속하거나 Tablet PC SDK에서 메서드를 재정의할 때 완전 신뢰가 필요합니다.

다음 표에서는 추가 권한이 필요한 클래스 및 멤버를 나열합니다. 지정된 클래스에 대한 사용 권한은 이 테이블에 나열되지 않은 모든 멤버에도 적용됩니다.

클래스 또는 메서드 권한을
CanPaste UIPermissionClipboard.AllClipboard
ink.ClipboardCopy UIPermissionClipboard.OwnClipboard
ink.ClipboardPaste UIPermissionClipboard.AllClipboard
InkCollector UIPermissionWindow.SafeTopLevelWindows
InkCollector(IntPtr) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
InkCollector.Handle UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode(아래 참고 참조)
InkEdit UIPermissionWindow.SafeTopLevelWindows
InkOverlay UIPermissionWindow.SafeTopLevelWindows
InkOverlay(IntPtr) UIPermissionWindow.SafeTopLevelWindows 및 SecurityPermissionFlag.UnmanagedCode
inkOverlay.Handle UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode(아래 참고 참조)
InkPicture UIPermissionWindow.SafeTopLevelWindows
PenInputPanel 아래 참고를 참조하세요.
InkRenderer UIPermissionWindow.SafeTopLevelWindows
그리기, DrawStroke UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
Renderer.InkSpaceToPixel(IntPtr,Point), Renderer.InkSpaceToPixel(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
Renderer.PixelToInkSpace(IntPtr,Point), Renderer.PixelToInkSpace(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
DynamicRenderer UIPermissionWindow.SafeTopLevelWindows
DynamicRenderer(IntPtr) UIPermissionWindow.SafeTopLevelWindowsSecurityPermissionFlag.UnmanagedCode
realTimeStylus UIPermissionWindow.SafeTopLevelWindows
RealTimeStylus(IntPtr), RealTimeStylus(IntPtr,Boolean), RealTimeStylus(IntPtr,Tablet) UIPermissionWindow.AllWindowsSecurityPermissionFlag.UnmanagedCode

 

메모

일반적으로 컨트롤에는 사용 권한이 더 적기 때문에 생성자에 대한 핸들(IntPtr) 대신 컨트롤을 사용하는 것이 좋습니다. 마찬가지로 Renderer.Draw ,Renderer.InkSpaceToPixelRenderer.PixelToInkSpace대한 핸들보다는 Graphics 개체를 사용하는 것이 좋습니다.

 

메모

InkCollector.HandleInkOverlay.Handle 속성에는 SecurityPermissionFlag.UnmanagedCode 권한이 필요하지 않습니다( 핸들이 Windows Forms 컨트롤에 대한 경우)이지만 다른 창에서는 사용할 수 있습니다.

 

 

기타 고려 사항

다른 알려진 보안 고려 사항은 다음과 같습니다.

  • 웹 컨트롤이 제대로 작동하려면 Microsoft Internet Explorer 6 이상이 필요합니다. Internet Explorer 5.5에서는 초기 관리되는 컨트롤만 로드됩니다. 런타임에 동적으로 추가 컨트롤을 로드할 수 없습니다.
  • Windows XP SP2(서비스 팩 2) 및 CLR1.0을 사용하는 경우 Internet Explorer에서 웹 컨트롤을 사용하려면 인트라넷 영역에 있더라도 사이트를 신뢰할 수 있는 사이트로 추가해야 합니다. 그러나 이렇게 하면 인트라넷 영역에서 실행되지만 신뢰할 수 있는 사이트 영역에서는 더 이상 실행되지 않습니다. 이 문제는 CLR1.1에서 해결되었습니다.