Bezpečná distribuce PDF: Od Orchard Core po .NET MAUI
V moderních enterprise systémech je bezpečnost dat při přenosu kritická. Ukážeme si, jak využít Syncfusion Document Solutions pro šifrování na straně Orchard Core a následné nativní zobrazení v MAUI.
Proč řešit šifrování na úrovni dokumentu?
I když je transportní vrstva zajištěna pomocí HTTPS, šifrování samotného PDF (AES-256) přidává další vrstvu ochrany "at rest" a umožňuje definovat uživatelská oprávnění přímo v metadatech souboru. Syncfusion v tomto scénáři exceluje svou výkonností a nulovou závislostí na Adobe Acrobat.
1. Generování a šifrování v Orchard Core
V rámci vlastního modulu v Orchard Core můžeme využít Syncfusion.Pdf.Net.Core. Následující ukázka
demonstruje vytvoření dokumentu a jeho ochranu heslem před odesláním do streamu.
// OrchardCore Controller / Web API
public IActionResult GenerateSecureReport()
{
using (PdfDocument document = new PdfDocument())
{
PdfPage page = document.Pages.Add();
page.Graphics.DrawString("Důvěrný report z OrchardCore",
new PdfStandardFont(PdfFontFamily.Helvetica, 20), PdfBrushes.Black, new PointF(10, 10));
// Nastavení zabezpečení - AES 256-bit
PdfSecurity security = document.Security;
security.UserPassword = "user123"; // Heslo pro otevření
security.OwnerPassword = "admin_secret";
security.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES;
security.KeySize = PdfEncryptionKeySize.Precision256Bit;
MemoryStream stream = new MemoryStream();
document.Save(stream);
return File(stream.ToArray(), "application/pdf", "SecureReport.pdf");
}
}
2. Proč zvolit Syncfusion Stack?
Konzistence
Stejné API pro manipulaci s dokumenty používáte na serveru (Orchard Core) i klientovi (MAUI).
Výkon
Syncfusion PDF Viewer v MAUI používá hardware akceleraci pro plynulé vykreslování i u velkých souborů.
Compliance
Podpora standardů PDF/A a pokročilé šifrování splňující firemní bezpečnostní politiky.
3. Zobrazení v .NET MAUI
Na straně mobilní aplikace využijeme SfPdfViewer. Klíčem je správné předání streamu a případné
ošetření dialogu pro heslo.
// MAUI ViewModel / Page logic
public async void LoadDocument(Stream pdfStream)
{
// SfPdfViewer automaticky vyvolá PasswordRequired event,
// pokud narazí na šifrovaný dokument
pdfViewer.LoadDocument(pdfStream);
}
private void pdfViewer_PasswordRequired(object sender, PdfPasswordRequiredEventArgs e)
{
// Zde můžeme uživateli zobrazit nativní dialog nebo použít uložený token
e.Password = "user123";
}
Architektonický tip: Při přenosu velkých PDF mezi Orchard Core a MAUI doporučuji implementovat chunked upload nebo streamování přímo do dočasného souboru, aby se předešlo MemoryExceptions na low-end mobilních zařízeních.
| Vlastnost | Standardní řešení | Syncfusion + Orchard Core |
|---|---|---|
| Šifrování | Často omezené / externí knihovny | Nativní AES-256 v rámci PDF library |
| Integrace v MAUI | WebView (nespolehlivé) | Nativní SfPdfViewer s plnou kontrolou |
| Správa obsahu | Statické soubory | Dynamické Orchard Core Content Types |