public KeyRingBasedDataProtector(IKeyRingProvider keyRingProvider, ILogger logger, string[] originalPurposes, string newPurpose)
        {
            Debug.Assert(keyRingProvider != null);

            Purposes = ConcatPurposes(originalPurposes, newPurpose);
            _logger = logger; // can be null
            _keyRingProvider = keyRingProvider;
            _aadTemplate = new AdditionalAuthenticatedDataTemplate(Purposes);
        }
        public KeyRingBasedDataProtector(IKeyRingProvider keyRingProvider, ILogger logger, string[] originalPurposes, string newPurpose)
        {
            Debug.Assert(keyRingProvider != null);

            Purposes         = ConcatPurposes(originalPurposes, newPurpose);
            _logger          = logger; // can be null
            _keyRingProvider = keyRingProvider;
            _aadTemplate     = new AdditionalAuthenticatedDataTemplate(Purposes);
        }
 public KeyRingBasedDataProtector(
     IKeyRingProvider keyRingProvider,
     ILogger logger,
     string[] originalPurposes,
     string newPurpose
     )
 {
     Debug.Assert(keyRingProvider != null);
     //!!重要,通过该结构体,设置加密数据,Purposes 不同的网站 生成的加密数据不同
     //!!运行目录会作为一个属性加入
     Purposes         = ConcatPurposes(originalPurposes, newPurpose);
     _logger          = logger; // can be null
     _keyRingProvider = keyRingProvider;
     _aadTemplate     = new AdditionalAuthenticatedDataTemplate(Purposes);
 }