|
@@ -2,17 +2,28 @@
|
|
using PDF_Office.Model;
|
|
using PDF_Office.Model;
|
|
using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
|
|
using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
|
|
using Prism.Services.Dialogs;
|
|
using Prism.Services.Dialogs;
|
|
-using System;
|
|
|
|
-using System.Collections.Generic;
|
|
|
|
-using System.Linq;
|
|
|
|
-using System.Text;
|
|
|
|
-using System.Threading.Tasks;
|
|
|
|
|
|
+using System.Management;
|
|
|
|
+using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.SetPasswordDialogModel;
|
|
using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
|
|
using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
|
|
|
|
|
|
namespace PDF_Office.Helper
|
|
namespace PDF_Office.Helper
|
|
{
|
|
{
|
|
- public class SecurityHelper
|
|
|
|
|
|
+ public class SecurityHelper
|
|
{
|
|
{
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 由全局变量储存是否修改过密码
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static bool IsPasswordChanged = false;
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 全局变量储存修改后的密码
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static class PasswordInfo
|
|
|
|
+ {
|
|
|
|
+ public static string OpenPassword = null;
|
|
|
|
+ public static string PermissionsPassword = null;
|
|
|
|
+ public static CPDFPermissionsInfo CPDFPermissionsInfo = CreateDefaultPermissionsInfo();
|
|
|
|
+ }
|
|
|
|
+
|
|
public static bool CheckHaveAllPermissions(CPDFDocument document)
|
|
public static bool CheckHaveAllPermissions(CPDFDocument document)
|
|
{
|
|
{
|
|
CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
|
|
CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
|
|
@@ -36,31 +47,31 @@ namespace PDF_Office.Helper
|
|
{
|
|
{
|
|
CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
|
|
CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
|
|
///如果需求这个权限
|
|
///如果需求这个权限
|
|
- if(((enumPermissionsSet & EnumPermissionsSet.StatusAllowsDocumentChanges) == EnumPermissionsSet.StatusAllowsDocumentChanges ) && (!permissionsInfo.AllowsDocumentChanges))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsDocumentChanges) == EnumPermissionsSet.StatusAllowsDocumentChanges) && (!permissionsInfo.AllowsDocumentChanges))
|
|
{
|
|
{
|
|
- return false;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- if(((enumPermissionsSet& EnumPermissionsSet.StatusAllowsPrinting) == EnumPermissionsSet.StatusAllowsPrinting) && (!permissionsInfo.AllowsPrinting))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsPrinting) == EnumPermissionsSet.StatusAllowsPrinting) && (!permissionsInfo.AllowsPrinting))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsHighQualityPrinting) == EnumPermissionsSet.StatusAllowsHighQualityPrinting) && (!permissionsInfo.AllowsHighQualityPrinting))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsHighQualityPrinting) == EnumPermissionsSet.StatusAllowsHighQualityPrinting) && (!permissionsInfo.AllowsHighQualityPrinting))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCopying) == EnumPermissionsSet.StatusAllowsCopying)&& (!permissionsInfo.AllowsCopying))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsCopying) == EnumPermissionsSet.StatusAllowsCopying) && (!permissionsInfo.AllowsCopying))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsDocumentAssembly) == EnumPermissionsSet.StatusAllowsDocumentAssembly) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsDocumentAssembly) == EnumPermissionsSet.StatusAllowsDocumentAssembly) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- if(((enumPermissionsSet&EnumPermissionsSet.StatusAllowsFormFieldEntry) == EnumPermissionsSet.StatusAllowsFormFieldEntry) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsFormFieldEntry) == EnumPermissionsSet.StatusAllowsFormFieldEntry) && (!permissionsInfo.AllowsDocumentAssembly))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- if (((enumPermissionsSet&EnumPermissionsSet.StatusAllowsCommenting) == EnumPermissionsSet.StatusAllowsCommenting) && (!permissionsInfo.AllowsCommenting))
|
|
|
|
|
|
+ if (((enumPermissionsSet & EnumPermissionsSet.StatusAllowsCommenting) == EnumPermissionsSet.StatusAllowsCommenting) && (!permissionsInfo.AllowsCommenting))
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
@@ -94,10 +105,10 @@ namespace PDF_Office.Helper
|
|
/// </returns>
|
|
/// </returns>
|
|
public static VerifyPasswordResult VerifyPasswordByPasswordKind(CPDFDocument document, EnumPasswordKind enumPasswordKind, IDialogService dialogService)
|
|
public static VerifyPasswordResult VerifyPasswordByPasswordKind(CPDFDocument document, EnumPasswordKind enumPasswordKind, IDialogService dialogService)
|
|
{
|
|
{
|
|
- VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
|
|
- if ((!document.IsLocked)&&
|
|
|
|
- ((enumPasswordKind == EnumPasswordKind.StatusOpenPassword)||
|
|
|
|
- (enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword)&& CheckHaveAllPermissions(document)))
|
|
|
|
|
|
+ VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
|
|
+ if ((!document.IsLocked) &&
|
|
|
|
+ ((enumPasswordKind == EnumPasswordKind.StatusOpenPassword) ||
|
|
|
|
+ (enumPasswordKind == EnumPasswordKind.StatusPermissionsPassword) && CheckHaveAllPermissions(document)))
|
|
{
|
|
{
|
|
verifyPasswordResult.IsDiscryptied = true;
|
|
verifyPasswordResult.IsDiscryptied = true;
|
|
verifyPasswordResult.Password = null;
|
|
verifyPasswordResult.Password = null;
|
|
@@ -107,7 +118,8 @@ namespace PDF_Office.Helper
|
|
DialogParameters value = new DialogParameters();
|
|
DialogParameters value = new DialogParameters();
|
|
value.Add(ParameterNames.PasswordKind, enumPasswordKind);
|
|
value.Add(ParameterNames.PasswordKind, enumPasswordKind);
|
|
value.Add(ParameterNames.PDFDocument, document);
|
|
value.Add(ParameterNames.PDFDocument, document);
|
|
- dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
|
|
|
|
|
|
+ dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e =>
|
|
|
|
+ {
|
|
verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
});
|
|
});
|
|
@@ -142,7 +154,7 @@ namespace PDF_Office.Helper
|
|
public static VerifyPasswordResult VerifyPasswordForSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet, IDialogService dialogService)
|
|
public static VerifyPasswordResult VerifyPasswordForSelectedPermissions(CPDFDocument document, EnumPermissionsSet enumPermissionsSet, IDialogService dialogService)
|
|
{
|
|
{
|
|
VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
VerifyPasswordResult verifyPasswordResult = new VerifyPasswordResult();
|
|
- if ((!document.IsLocked) &&CheckHaveSelectedPermissions(document, enumPermissionsSet))
|
|
|
|
|
|
+ if ((!document.IsLocked) && CheckHaveSelectedPermissions(document, enumPermissionsSet))
|
|
{
|
|
{
|
|
verifyPasswordResult.IsDiscryptied = true;
|
|
verifyPasswordResult.IsDiscryptied = true;
|
|
verifyPasswordResult.Password = null;
|
|
verifyPasswordResult.Password = null;
|
|
@@ -160,7 +172,8 @@ namespace PDF_Office.Helper
|
|
value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
|
|
value.Add(ParameterNames.PasswordKind, EnumPasswordKind.StatusPermissionsPassword);
|
|
}
|
|
}
|
|
value.Add(ParameterNames.PDFDocument, document);
|
|
value.Add(ParameterNames.PDFDocument, document);
|
|
- dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e => {
|
|
|
|
|
|
+ dialogService.ShowDialog(DialogNames.CheckPasswordDialog, value, e =>
|
|
|
|
+ {
|
|
verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
verifyPasswordResult.IsDiscryptied = e.Parameters.GetValue<bool>(ParameterNames.PasswordResult);
|
|
verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
verifyPasswordResult.Password = e.Parameters.GetValue<string>(ParameterNames.Password);
|
|
});
|
|
});
|
|
@@ -168,8 +181,6 @@ namespace PDF_Office.Helper
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
public class VerifyPasswordResult
|
|
public class VerifyPasswordResult
|
|
{
|
|
{
|
|
public bool IsDiscryptied;
|
|
public bool IsDiscryptied;
|