コード例 #1
0
        public HomeController(IRequestRepository requestRepository)
        {
            this.requestRepository = requestRepository;

            if (FilePasswords != null)
            {
                FilePasswords.Where(p => p.Value.Expires < DateTime.Now).ToList().ForEach(
                    f => FilePasswords.Remove(f.Key));
            }
        }
コード例 #2
0
        private static void StoreEncryptedFileInTemporaryMemory(Message message)
        {
            message.TemporaryDownloadId =
                SymmetricCryptoProvider.GenerateKeyPhrase(64);

            FilePasswords.Add(message.TemporaryDownloadId,
                              new TemporaryDownloadKey
            {
                Expires    = DateTime.Now.AddSeconds(PasswordExpiresInSeconds),
                MessageId  = message.MessageId,
                Passphrase = message.EncryptionKey
            });

            // get filename
            byte[] decryptedArray = Convert.FromBase64String(message.MessageData);

            var zipStream = new MemoryStream(decryptedArray);

            using (ZipFile zip = ZipFile.Read(zipStream))
            {
                message.MessageData = zip.First().FileName;
            }
        }