コード例 #1
0
        public async Task <IActionResult> Download(Guid id)
        {
            var fileEntry = await _dispatcher.DispatchAsync(new GetEntityByIdQuery <FileEntry> {
                Id = id
            });

            var content = await _fileManager.ReadAsync(fileEntry);

            return(File(content, MediaTypeNames.Application.Octet, WebUtility.HtmlEncode(fileEntry.FileName)));
        }
コード例 #2
0
        public async Task <IActionResult> Download(Guid id)
        {
            var fileEntry = await _dispatcher.DispatchAsync(new GetEntityByIdQuery <FileEntry> {
                Id = id
            });

            var rawData = await _fileManager.ReadAsync(fileEntry.ToModel());

            var content = fileEntry.Encrypted && fileEntry.FileLocation != "Fake.txt"
                ? rawData
                          .UseAES(fileEntry.EncryptionKey.FromBase64String())
                          .WithCipher(CipherMode.ECB)
                          .WithPadding(PaddingMode.PKCS7)
                          .Decrypt()
                : rawData;

            return(File(content, MediaTypeNames.Application.Octet, WebUtility.HtmlEncode(fileEntry.FileName)));
        }