다음을 통해 공유


방법: IRM(정보 권한 관리) 설정 사용

Microsoft Office InfoPath 2007 에서는 두 가지 유형의 IRM(정보 권한 관리) 설정을 사용할 수 있습니다. 하나는 InfoPath 양식 서식 파일에 대한 액세스를 보호하기 위한 설정이고 다른 하나는 완성된 양식에 포함된 양식 데이터에 대한 액세스와 작업을 제어하기 위한 설정입니다. 양식 서식 파일을 디자인할 때 이러한 설정을 사용하려면 파일 메뉴에서 자격 증명 관리를 클릭합니다. 양식에 데이터를 입력할 때 이러한 설정을 사용하려면 파일 메뉴에서 사용 권한을 클릭한 다음 자격 증명 관리를 클릭합니다. InfoPath의 사용 권한 대화 상자 사용에 대한 자세한 내용은 InfoPath 도움말의 "제한된 권한을 사용하여 양식 서식 파일 만들기" 항목을 참고하십시오.

참고:

제한된 권한은 InfoPath와 호환되는 양식 서식 파일에만 사용할 수 있습니다. 브라우저 호환 양식 서식 파일에서는 IRM을 지원하지 않습니다. 양식 서식 파일을 디자인할 때 파일 메뉴에 자격 증명 관리가 표시되지 않으면 호환성 설정을 확인합니다.

IRM 개체 모델

Permission 클래스를 사용하여 양식에 적용할 수 있는 IRM 권한 설정과 UserPermissionCollection에 액세스할 수 있습니다. 양식 서식 파일에 연결된 Permission 개체에 액세스하려면 XmlForm 클래스의 Permission 속성을 사용합니다. 반환된 Permission 개체는 양식 서식 파일 및 해당 서식 파일로 만든 각 양식 인스턴스에 연결된 UserPermission 개체의 컬렉션에 대한 액세스를 제공합니다.

권한이 활성 양식 서식 파일로만 제한되어 있는지 여부에 관계없이 Permission 개체 및 해당 속성과 메서드를 사용할 수 있습니다. 양식의 권한이 제한되어 있는지 여부를 확인하려면 Enabled 속성을 사용합니다.

Permission 클래스의 속성과 메서드를 사용하여 양식에 대한 권한을 다음 중 한 가지 방법으로 활성화할 수 있습니다.

Enabled 속성을 true로 설정합니다.

DocumentAuthor 속성을 설정합니다.

RequestPermissionUrl 속성을 설정합니다.

StoreLicenses 속성을 true 또는 false로 설정합니다.

ApplyPolicy 메서드를 호출합니다.

참고:

사용자 컴퓨터에 Windows Rights Management 클라이언트가 설치되어 있지 않을 경우 Permission 클래스를 사용하면 예외가 발생합니다.

양식에서 프로그래밍 방식으로 개별 사용자의 IRM 설정을 사용하려면 UserPermissionCollectionUserPermission 클래스를 사용합니다.

UserPermission 개체는 현재 양식에 대한 권한 집합을 단일 사용자 및 선택적 만료 날짜와 연결합니다. UserPermissionCollection 클래스의 Add 메서드를 사용하여 현재 양식에 대한 권한 집합을 추가하고 사용자에게 부여할 수 있습니다. 사용자 및 이 사용자의 권한을 제거하려면 UserPermissionCollection 클래스의 Remove 메서드를 사용합니다. 인쇄 및 만료 날짜 같이 사용자 인터페이스를 통해 부여된 일부 권한은 모든 사용자에게 적용되지만 UserPermissionUserPermissionCollection 클래스를 사용하여 사용자별 만료 날짜가 지정된 권한을 사용자별로 할당할 수 있습니다. 이 개체 모델을 통해 개발자는 양식에 권한 설정을 열거하고 양식 사용자가 양식 권한 작업창이나 사용 권한 대화 상자를 사용하지 않고도 양식에 권한을 추가할 수 있도록 하는 기능을 제공할 수 있습니다.

참고:

양식이 미리 보기 모드에 있을 경우에는 권한을 적용할 수 없습니다. 이로 인해 양식을 미리 보는 동안에는 Permission 클래스의 모든 속성이 읽기 전용 상태입니다. 미리 보기 모드에서는 Enabled 속성이 항상 false를 반환하며 코드가 이 설정을 변경하려고 시도하면 System.Runtime.InteropServices.COMException이 발생하고 "속성/메서드는 미리 보기 모드에서 사용할 수 없습니다."라는 오류가 반환됩니다. 마찬가지로 UserPermissionUserPermissionCollection 클래스에 연결된 메서드를 미리 보기 모드에서 사용할 때도 오류 메시지가 반환됩니다.

Permission 클래스 개요

UserPermissionCollection 클래스는 다음 속성과 하나의 메서드를 제공합니다.

이름 설명

ApplyPolicy 메서드

정책 서식 파일을 사용하여 양식에 정책을 적용합니다.

DocumentAuthor 속성

현재 양식 작성자의 전자 메일 주소를 가져오거나 설정합니다.

Enabled 속성

Permission 개체가 나타내는 권한 설정을 현재 양식에 사용할 수 있는지 여부를 가져오거나 설정합니다.

PermissionFromPolicy 속성

권한 정책이 현재 양식에 적용되었는지 여부를 나타내는 값을 가져오거나 설정합니다.

PolicyDescription 속성

현재 양식에 적용된 정책에 대한 설명을 가져옵니다.

PolicyName 속성

현재 양식에 적용된 정책의 이름을 가져옵니다.

RequestPermissionUrl 속성

현재 양식에 대한 추가 권한이 필요한 사용자가 참조할 수 있는 파일, URL 또는 문의할 수 있는 전자 메일 주소를 가져오거나 설정합니다.

StoreLicenses 속성

사용자가 권한 관리 서버에 연결할 수 없는 경우 오프라인으로 볼 수 있도록 현재 양식을 볼 수 있는 사용자의 라이선스가 캐시되어야 하는지 여부를 나타내는 값을 가져오거나 설정합니다.

UserPermissions 속성

현재 양식에 대한 UserPermissionCollection 개체를 가져옵니다.

UserPermissionCollection 클래스 개요

UserPermissionCollection 클래스는 다음 속성과 메서드를 제공합니다.

이름 설명

Add 메서드(+3 오버로드)

새 사용자를 현재 양식에 추가하고 선택적으로 권한과 만료 날짜를 지정합니다.

Remove 메서드

지정한 UserId를 가진 UserPermission 개체를 컬렉션에서 제거합니다.

RemoveAll 메서드

모든 UserPermission 개체를 컬렉션에서 제거합니다.

Count 속성

컬렉션에 포함된 UserPermission 개체의 수를 가져옵니다.

Item 속성(+1 오버로드)

UserPermission 개체를 가져옵니다.

UserPermission 클래스 개요

UserPermission 클래스는 다음 속성과 하나의 메서드를 제공합니다.

이름 설명

Remove 메서드

양식의 권한에서 현재 UserPermission 개체를 제거합니다.

ExpirationDate 속성

UserPermission 클래스의 인스턴스에 연결된 사용자에게 할당되는 현재 양식에 대한 권한의 선택적 만료 날짜를 가져오거나 설정합니다.

Permission 속성

UserPermission 클래스의 인스턴스에 연결된 사용자에게 할당되는 현재 양식에 대한 권한을 나타내는 값을 가져오거나 설정합니다.

UserId 속성

지정한 UserPermission 개체에 의해 현재 양식에 대한 권한이 결정되는 사용자의 전자 메일 주소를 가져옵니다.

PermissionType 열거

사용자 권한은 PermissionType 열거형 값을 사용하여 설정하거나 읽습니다.

이름 설명

PermissionType.Change

사용자가 양식을 보고, 편집, 복사 및 저장할 수 있지만 인쇄할 수는 없습니다. Read, Edit, SaveExtract 권한을 결합한 것과 같습니다.

PermissionType.Edit

사용자가 양식을 편집할 수 있습니다.

PermissionType.Extract

Read 권한이 있는 사용자가 양식의 내용을 복사할 수 있습니다.

PermissionType.FullControl

사용자가 다른 양식 사용자의 권한을 추가, 변경 및 제거할 수 있습니다.

PermissionType.ObjectModel

사용자가 개체 모델을 통해 프로그래밍 방식으로 양식 문서에 액세스할 수 있습니다. ObjectModel 권한이 없는 사용자는 개체 모델을 사용하여 자신의 권한을 결정할 수 없습니다.

PermissionType.Print

사용자가 양식을 인쇄할 수 있습니다.

PermissionType.Read

사용자가 양식을 읽고 볼 수 있습니다. ReadView 권한은 동일합니다.

PermissionType.Save

사용자가 양식을 저장할 수 있습니다.

PermissionType.View

사용자가 양식을 일고 볼 수 있습니다. ReadView 권한은 동일합니다.

예제

다음 예제에서는 단추 컨트롤을 클릭하여 현재 양식에 대한 UserPermissionsCollection을 가져오고, 변경 액세스 수준에 사용자를 추가 및 할당하고, 만료 날짜를 현재 날짜로부터 2일로 설정합니다.

public void CTRL1_Clicked(object sender, ClickedEventArgs e)
{
   string strExpirationDate = DateTime.Today.AddDays(2).ToString();
   DateTime dtExpirationDate = DateTime.Parse(strExpirationDate);

   this.Permission.UserPermissions.Add("someone@example.com", 
      PermissionType.Change, dtExpirationDate);
}
Public Sub CTRL1_Clicked(ByVal sender As Object, _
   ByVal e As ClickedEventArgs)
   Dim strExpirationDate As String = _
      DateTime.Today.AddDays(2).ToString()
   dtExpirationDate As DateTime = DateTime.Parse(strExpirationDate)

   Me.Permission.UserPermissions.Add("someone@example.com", _
      PermissionType.Change, dtExpirationDate)
End Sub