! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

.NET C#을 사용하여 Excel 에서 보안 및 인증을 관리하는 방법 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

.NET C#을 사용하여 Excel 에서 보안 및 인증을 관리하는 방법

페이지 정보

작성자 GrapeCity 작성일 2022-04-21 17:33 조회 1,237회 댓글 0건

본문

정부, 금융, 영업 또는 교육 기관에 관계없이 오늘날 대부분의 기업은 Excel 스프레드시트가 모든 종류의 데이터를 저장하는 데 사용되는 필수 도구라는 것을 알고 있습니다.


업계에서 사용되는 방법에 대한 몇 가지 예는(이 목록에 국한되지 않음) 재무, 판매, 고객 데이터, 제품 세부 정보, 학생 성적 및 성과, 개인 정보 등의 데이터 저장입니다.


종종 이러한 데이터는 민감한 기밀 데이터이므로 우발적이든 고의적이든 모든 변경으로부터 보호해야 합니다.


이 블로그에서는 다음을 포함하여 GcExcel C# .NET 라이브러리를 사용해 Excel 문서에 프로그래밍 방식으로 적용할 수 있는 다양한 수준의 보안을 다룹니다.


  • C#에서 암호를 사용하여 통합 문서(또는 워크시트) 보안ng-net-c-sharp#secure)

  • C#에서 디지털 서명을 사용하여 문서에 신뢰성 추가net-c-sharp#adding)

  • C#에서 내보낸 PDF에 대한 권한 구성에서 암호를 사용하여 통합 문서(및 워크시트) 보안


암호를 사용한 문서 보호는 문서에 필요한 보안의 유형 또는 수준에 따라 GcExcel C# .NET 라이브러리를 사용하여 여러 방식으로 적용됩니다. 여기에는 다음이 포함됩니다.


1. 전체 스프레드시트 문서 또는 파일 보안


이 접근 방법을 통해 실제 사용자에게만 데이터 액세스 권한이 부여됩니다. 보안된 문서를 열면 아래와 같이 암호가 요청됩니다.

암호


C# .Net용 GcExcel을 사용하여 문서 수준에서 암호를 추가하려면 XlsxSaveOptions 클래스의 인스턴스를 정의하고 아래 코드와 같이 Password 속성을 설정합니다.

Workbook workbook = new Workbook();
workbook.Open("sales.xlsx");
XlsxSaveOptions saveOptions = new XlsxSaveOptions();
saveOptions.Password = "testOpen";
workbook.Save("Sales_Password.xlsx", saveOptions);


 

2. 통합 문서의 구조 보호

이 유형의 보안 옵션은 수정으로부터 통합 문서의 구조를 보호합니다. 아래에 표시된 것처럼 사용자가 숨겨진 워크시트를 보고, 워크시트를 추가하거나 이동하거나 삭제하거나 숨기거나 이름을 변경하거나 통합 문서 창을 이동하거나 크기를 조정하거나 닫거나 창을 숨기거나 숨기기 취소할 수 없도록 합니다.


img


C# .Net용 GcExcel을 사용하여 이 보안을 추가하려면 아래와 같이 IWorkbook 인터페이스로 Protect 메서드를 호출합니다.

workbook.Protect();


이 메서드에는 세 가지 오버로드가 제공됩니다. 인수가 없으면 구조와 창 작업은 모두 비활성화됩니다. 보호를 해제하는 데는 암호가 필요하지 않습니다. 다른 오버로드를 통해 구조나 창을 선택적으로 비활성화할 수 있습니다.

workbook.Protect(true, false);


세 번째 오버로드를 통해 통합 문서를 보호 해제해야 하는 경우 필요한 암호를 설정할 수 있습니다.

workbook.Protect("password", true, false);


통합 문서를 보호 해제하려면 아래와 같이 IWorkbook 인터페이스의 Unprotect 메서드를 사용합니다.

workbook.Unprotect();  //unprotect a workbook

//or

workbook.Unprotect("password");  //unprotect a password protected workbook


3. 특정 시트 보호


비즈니스 상황에 따라 특정 시트를 수정으로부터 보호해야 합니다(예: 판매 또는 성능 데이터가 포함된 시트). 보호된 시트의 콘텐츠를 편집하려고 하면 아래와 같은 경고가 나타납니다.

보호된 시트


GcExcel C#.Net을 사용하여 시트를 보호하려면 아래와 같이 IWorksheet 인터페이스로 Protect 메서드를 사용합니다.

workbook.Worksheets["sheet name or index"].Protect();

//OR

workbook.Worksheets["sheet name or index"].Protect("password"); //provide a password which will be required while unlocking the sheet


보호된 워크시트를 보호 해제하려면 아래와 같이 IWorksheet 인터페이스로 Unprotect 메서드를 사용합니다.

workbook.Worksheets["sheet name or index"].Unprotect();

//OR

workbook.Worksheets["sheet name or index"].Unprotect("password");


또는 IWorksheet 인터페이스와 함께 Protection 속성을 사용할 수도 있습니다. 후반 섹션에서 이 메서드는 제한 활성화 및 비활성화를 위해 몇 가지 고급 보호 부울을 노출합니다. 하지만 암호로 워크시트를 보호하기 위해 제공되지는 않습니다.

workbook.Worksheets[0].Protection = true;  //enable worksheet protection

workbook.Worksheets[0].Protection = false; //disable worksheet protection


4. 시트에서 특정 요소 보호


시트의 차트, 행, 열 또는 셀과 같은 특정 요소가 아닌 전체 시트를 보호하기 위해 필요하거나 필수인 경우가 아닐 때가 있습니다. 계산된 데이터가 있는 셀, 합계가 있는 행, 조건적으로 서식이 지정된 셀 등을 예로 들 수 있습니다.


이 보안을 통해 데이터/콘텐츠 변경과 워크시트 구조 또는 요소의 변경을 피할 수 있습니다.


전자는 셀, 행, 열 또는 범위 등의 IRange 개체로 Locked 속성을 사용하여 달성됩니다. 후자는 IProtectionSettings 인터페이스로 사용자 정의 보안 옵션을 구성하여 달성됩니다.



요소 잠금/잠금 해제


이전 섹션에서 설명한 메서드를 사용하여 시트를 보호하는 경우 워크시트의 셀은 잠기며 CRUD 작업은 행, 열 또는 다른 요소에서 제한됩니다. 특정 셀 또는 요소를 잠그려면 먼저 모든 셀/요소를 잠금 해제한 다음 아래 코드에 표시된 것처럼 특정 요소에 대해 Locked 속성을 true로 설정합니다.

workbook.Worksheets[0].Protect();
workbook.Worksheets[0].Cells.Locked = false;
workbook.Worksheets[0].Rows[30].Locked = true;  //Row with totals is locked, other can be edited

사용자 정의 설정으로 워크시트 구조 보안


C# .Net용 GcExcel은 전체 워크시트를 보호하면서 사용자에게 특정 기능을 허용하도록 사용자 정의 옵션을 제공합니다. 속성은 IProtectionSettings 인터페이스 내에서 확인됩니다. 다음과 같이 MS Excel의 설정에 해당합니다.


시트 목록 보호


아래 코드와 같이 Protect 메서드 또는 Protection 속성으로 이러한 설정을 사용합니다.

workbook.Worksheets[0].Protect("password");
IProtectionSettings protectionSettings = workbook.Worksheets[0].ProtectionSettings;
protectionSettings.AllowDeletingRows = false;
protectionSettings.AllowDeletingColumns = false;
protectionSettings.AllowFiltering = true;
protectionSettings.AllowFormattingCells = true;
protectionSettings.AllowInsertingColumns = true;
protectionSettings.AllowFormattingColumns = true;
protectionSettings.AllowFormattingRows = true;
protectionSettings.AllowInsertingHyperlinks = true;
protectionSettings.AllowUsingObjects = true;
protectionSettings.AllowInsertingRows = true;
protectionSettings.AllowSorting = true;
protectionSettings.AllowUsingPivotTables = true;


또는,

workbook.Worksheets[0].Protection = true;
workbook.Worksheets[0].ProtectionSettings.AllowDeletingRows = false;
workbook.Worksheets[0].ProtectionSettings.AllowDeletingColumns = false;
workbook.Worksheets[0].ProtectionSettings.AllowFiltering = true;
workbook.Worksheets[0].ProtectionSettings.AllowFormattingCells = true;
workbook.Worksheets[0].ProtectionSettings.AllowInsertingColumns = true;
workbook.Worksheets[0].ProtectionSettings.AllowFormattingColumns = true;
workbook.Worksheets[0].ProtectionSettings.AllowFormattingRows = true;
workbook.Worksheets[0].ProtectionSettings.AllowInsertingHyperlinks = true;
workbook.Worksheets[0].ProtectionSettings.AllowUsingObjects = true;
workbook.Worksheets[0].ProtectionSettings.AllowInsertingRows = true;
workbook.Worksheets[0].ProtectionSettings.AllowSorting = true;
workbook.Worksheets[0].ProtectionSettings.AllowUsingPivotTables = true;



C# .Net을 사용하여 디지털 서명 추가


디지털 서명은 전자 서명을 인증하는 데 사용됩니다. 서명자가 정보를 확인했으며 변경되었음을 확인합니다. C# .Net용 GcExcel API를 사용하여 Excel 문서에 디지털 인증서를 추가하는 것은 아래에서 설명하는 2단계 프로세스입니다.



1단계 - 서명란 추가


서명란은 아래와 같이 디지털 서명의 서명 자리 표시자입니다.

서명 자리 표시자


GcExcel을 사용하여 서명란을 문서에 추가하기 위해 ISignatureSet 인터페이스의 AddSignatureLine 메서드를 사용합니다. ISignatureSetup 인터페이스에 정의된 속성을 사용하여 비즈니스 요구에 대해 구성할 수 있습니다. 아래 코드에 따라 Excel 문서에 서명을 추가하고 구성합니다.

ISignature signature = workbook.Signatures.AddSignatureLine(workbook.ActiveSheet, 100.0, 50.0);
ISignatureSetup setup = signature.Setup;
setup.ShowSignDate = true;
setup.AllowComments = true;
setup.SigningInstructions = "Please check the content before signing.";
setup.SuggestedSigner = "James Lawyer";
setup.SuggestedSignerEmail = "support@grapecity.com";
setup.SuggestedSignerLine2 = "Department Head";



2단계 - 서명란 서명


서명란이 있으면 서명자의 ID를 제공하기 위해 서명 인증서로 서명란에 서명해야 합니다. 인증서 문서 생성에 언급된 단계에 따라 인증서 파일(.pfx)을 생성합니다. 인증서가 있는 경우 ISignature 인터페이스의 Sign 메서드를 사용하여 디지털 서명을 추가합니다. 이 메서드에 필요한 두 개의 인수는 아래 코드에 표시된 대로 X509CertificateSignatureDetails입니다.

//Set Signature details
var details = new SignatureDetails
  {
      Address1 = "Your Address1",
      Address2 = "Your Address2",
      SignatureComments = "Final",
      City = "Your City",
      StateOrProvince = "Your State",
      PostalCode = "Your Postal Code",
      CountryName = "Your Country",
      ClaimedRole = "Your Role",
      CommitmentTypeDescription = "Approved",
      CommitmentTypeQualifier = "Final"
  };

//Initialize Signature
var cert = new X509Certificate2("GcTest.pfx","password");

//Sign the signature line
signature.Sign(cert, "James Lawyer", details);


서명을 하면 아래와 같이 Excel 문서에 나타납니다.

복구할 수 있는 서명


GcExcel은 디지털 서명으로 편집, 삭제, 이동, 내보내기, 연대 서명, 확인 등의 작업을 하도록 API를 제공합니다. 문서 내용을 따르고 데모를 확인하여 자세히 알아볼 수 있습니다.


C#을 사용하여 내보낸 PDF 보안


PDF는 파일을 공유, 전송 또는 이동하는 데 가장 많이 사용되는 문서 형식 중 하나입니다. C# .Net용 GcExcel은 Excel 문서를 PDF 형식으로 내보내고 문서 내 데이터를 보호하는 동안 적용할 수 있는 몇 가지 보안 옵션을 제공합니다.


내보낸 PDF는 다음의 두 가지 방식으로 보안할 수 있습니다.

  1. PDF로 할 수 있는 작업에 제한 사항 적용

  2. 암호 설정



권한 기반 제한 사항


권한은 PDF 문서에서 사용자에게 부여해야 할 종류의 액세스를 결정합니다. 권한을 사용하면 사용자는 콘텐츠 인쇄, 복사 및 추출, 문서 수정, AcroForms(또는 대화형 양식) 작성이 금지됩니다.

문서의 제한 사항


암호 기반 보안


C# .Net용 GcExcel API를 통해 사용자 암호와 소유자 암호를 설정할 수 있습니다. 이러한 암호를 선택하면 아래와 같이 파일을 열 때 암호를 입력하라는 메시지가 나타납니다.


문서 열기 암호


사용자 암호는 전체 파일을 암호화하고 열기를 방지합니다. 사용자가 유효한 암호를 제공하지 않으면 콘텐츠는 보이지 않습니다.


소유자 암호는 문서를 암호화하지 않지만 수행할 수 있는 작업을 제어하는 데 사용됩니다. 이 암호를 사용하면 다른 사용자에게 제한되는 문서를 인쇄, 복사 및 수정하는 등의 작업을 할 수 있습니다.


GcExcel을 사용하여 PDF의 보안 옵션을 설정하려면 아래 코드와 같이 PdfSaveOptionPdfSecurityOption 클래스에 사용할 수 있는 속성을 설정합니다.

PdfSecurityOptions securityOptions = new PdfSecurityOptions
{
   //Sets the user password.
   UserPassword = "user",
   //Sets the owner password.
   OwnerPassword = "owner",
   //Allow to print pdf document.
   PrintPermission = false,
   //Print the pdf document in high quality.
   FullQualityPrintPermission = false,
   //Allow to copy or extract the content of the pdf document.
   ExtractContentPermission = false,
   //Allow to modify the pdf document.
   ModifyDocumentPermission = false,
   //Allow to insert, rotate, or delete pages and create bookmarks or thumbnail images of the pdf document.
   AssembleDocumentPermission = false,
   //Allow to modify text annotations and fill the form fields of the pdf document.
   ModifyAnnotationsPermission = false,
   //Filling the form fields of the pdf document is not allowed.
   FillFormsPermission = false
};

PdfSaveOptions pdfSaveOptions = new PdfSaveOptions
{
   //Sets the security settings of the pdf.
   SecurityOptions = securityOptions
};

//Save the workbook into pdf file.
workbook.Save(outputStream, pdfSaveOptions);


이러한 다양한 보안 메서드는 스프레드시트 문서에 저장된 기밀 정보를 보호, 유효성 검사 및 안전하게 공유하도록 조합할 수 있습니다.


문서를 읽고 데모를 확인하여 활성화된 PDF 보안 옵션을 참조하십시오.





지금 바로 GcExcel .NET Core를 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.