J
7/10/2026

Jak osadzić przeglądarkę dokumentów bez wtyczek w ASP.NET

Przewodnik krok po kroku dla inżynierów .NET, którzy muszą osadzić bezpieczną, zerową przeglądarkę dokumentów Doconut App w projektach ASP.NET Core, MVC lub WebForms.

Tak—możesz osadzić bezpieczną, bezwtyczkową przeglądarkę plików online w dowolnej aplikacji ASP.NET Core, MVC lub WebForms w zaledwie kilka minut, a Doconut App zajmuje się całą ciężką pracą.
Przedsiębiorstwa udostępniające umowy, rysunki lub zasoby projektowe potrzebują przeglądarki, która respektuje polityki bezpieczeństwa korporacji, działa w każdej przeglądarce i nigdy nie zmusza użytkowników do instalowania zewnętrznych wtyczek. Doconut App dostarcza dokładnie to: przeglądarkę opartą na przeglądarce, obsługującą PDF, Office, CAD i ponad 50 innych formatów, z szyfrowaniem AES‑256, wyłącznie przesyłaniem przez SSL oraz w pełni konfigurowalnym interfejsem UI. Ten wpis przeprowadzi Cię przez cały proces—od zabezpieczenia przesyłania pliku po renderowanie przeglądarki—abyś mógł dostarczyć dopracowane, klasy korporacyjnej rozwiązanie bez pisania własnego silnika renderującego.


1. Dlaczego bezpieczeństwo i renderowanie bez wtyczek mają znaczenie dla aplikacji .NET

Nowoczesne przedsiębiorstwa traktują każdy dokument jako potencjalny wyciek danych. Gdy osadzasz przeglądarkę opartą na ActiveX, Flashu lub natywnym kliencie, dziedziczysz trzy ryzyka:

RyzykoWpływ na Twoją aplikację .NETJak Doconut App to eliminuje
Zależność od wtyczekUżytkownicy muszą instalować lub włączać wtyczkę przeglądarki, co generuje zgłoszenia wsparcia i problemy z zgodnością.Doconut działa w pełni w HTML5/Canvas, wymagając zero wtyczek.
Niezaszyfrowany transferPliki podróżują przez HTTP lub są przechowywane w postaci niezaszyfrowanej, co narusza GDPR, HIPAA lub wewnętrzne polityki.Wszystkie przesyłania odbywają się przez SSL i są przechowywane z szyfrowaniem AES‑256.
Niekontrolowany cykl życiaPliki mogą pozostawać na serwerze, zwiększając powierzchnię ataku.Doconut automatycznie usuwa pliki po obejrzeniu, zapewniając krótkie okno retencji.

Ponieważ przeglądarka jest dostarczana jako komponent JavaScript komunikujący się z bezpiecznym serwisem renderującym Doconut, utrzymujesz czystość stosu .NET—bez dodatkowych natywnych bibliotek, binarek stron trzecich i dodatkowych audytów zgodności.


2. Przygotowanie projektu .NET – minimalna konfiguracja dla ASP.NET Core, MVC i WebForms

Niezależnie od tego, czy używasz ASP.NET Core, MVC 5, czy WebForms, kroki przygotowawcze są identyczne:

  1. Dodaj pakiet skryptowy Doconut
    Doconut hostuje lekki skrypt przeglądarki na swoim CDN. Dodaj następującą linię do swojej strony układu (np. _Layout.cshtml lub Site.Master):

    <script src="https://doconut.app/viewer.min.js"></script>
    
  2. Utwórz element zastępczy
    Przeglądarka wstrzykuje canvas do dowolnego <div>, który wskażesz. Przykład dla Razor:

    <div id="docViewer" style="width:100%; height:800px;"></div>
    

    Dla WebForms umieść <asp:Panel> z runat="server" i nadaj mu ID="docViewer".

  3. Odwołaj się do CSS Doconut (opcjonalnie)
    Jeśli chcesz domyślny pasek narzędzi i motyw, dołącz plik CSS:

    <link rel="stylesheet" href="https://doconut.app/viewer.min.css" />
    

To wszystko, co potrzebne jest po stronie statycznych zasobów. Reszta pracy odbywa się w kodzie po stronie serwera (przesyłanie, szyfrowanie, generowanie tokenu) oraz w niewielkim skrypcie inicjalizacyjnym po stronie klienta.


3. Tworzenie bezpiecznego punktu końcowego przesyłania – AES‑256, SSL i automatyczne usuwanie

Przeglądarka nigdy nie uzyskuje bezpośredniego dostępu do plików w Twoim systemie plików. Zamiast tego, dokument jest przesyłany do tymczasowej, zaszyfrowanej lokalizacji, którą Doconut odczytuje na żądanie. Poniżej opis wysokiego poziomu wymaganych kroków dla ASP.NET Core; te same zasady mają zastosowanie do MVC i WebForms.

Przebieg po stronie serwera

  1. Przyjmij przesłany plik – użyj standardowego IFormFile (lub HttpPostedFile w WebForms), aby odebrać dokument od klienta.
  2. Zaszyfruj plik przy użyciu AES‑256 – przed zapisaniem strumienia, zaszyfruj go przy pomocy sprawdzonej biblioteki, takiej jak System.Security.Cryptography.Aes. Przechowuj zaszyfrowany blob w bezpiecznej lokalizacji (np. Azure Blob Storage z włączonym szyfrowaniem po stronie serwera lub bucket S3 z SSE‑AES256).
  3. Wygeneruj krótkotrwały podpisany URL – utwórz adres URL ważny przez kilka minut (np. 5 minut). URL powinien być HTTPS i zawierać token kryptograficzny, który Doconut może zweryfikować. Większość dostawców chmury oferuje funkcję „pre‑signed URL”, idealną do tego celu.
  4. Zwróć podpisany URL do klienta – wyślij odpowiedź JSON zawierającą URL. Klient przekaże ten URL przeglądarce Doconut.
  5. Zaplanuj automatyczne usuwanie – po wygaśnięciu podpisanego URL, zadanie w tle (Hangfire, Azure Functions itp.) usuwa zaszyfrowany blob, zapewniając, że plik nie pozostaje na serwerze.

Równoważniki MVC / WebForms

  • MVC – umieść tę samą logikę w zwykłej akcji kontrolera i zwróć JsonResult.
  • WebForms – zaimplementuj obsługę w pliku .ashx lub metodę strony, która wykonuje te same kroki: odbiór Request.Files[0], szyfrowanie, generowanie podpisanego URL i zapisanie odpowiedzi JSON.

Jedyną różnicą jest składnia routingu; przepływ bezpieczeństwa pozostaje identyczny.


4. Renderowanie przeglądarki Doconut – od URL do płótna w przeglądarce

Gdy klient otrzyma podpisany URL, przeglądarkę można uruchomić jednym wywołaniem JavaScript. SDK Doconut automatycznie obsługuje strumieniowanie, renderowanie i interakcje UI.

<script>
    // Zakładamy, że `response.viewerUrl` zawiera podpisany URL zwrócony z punktu końcowego przesyłania
    function launchViewer(viewerUrl) {
        // Inicjalizacja przeglądarki Doconut. Globalny obiekt udostępniony przez skrypt to `DoconutViewer`.
        DoconutViewer.init({
            containerId: "docViewer",   // <div>, który umieściliśmy wcześniej
            fileUrl: viewerUrl,          // Podpisany, HTTPS URL do zaszyfrowanego pliku
            toolbar: true,               // Pokaż wbudowany pasek narzędzi
            theme: "light"              // Opcjonalny motyw wizualny
        });
    }

    // Przykład: po pomyślnym przesłaniu
    fetch("/api/document/upload", {
        method: "POST",
        body: myFormData,
        credentials: "include"
    })
    .then(r => r.json())
    .then(data => launchViewer(data.viewerUrl));
</script>

Dlaczego to działa w każdej odmianie .NET

  • ASP.NET Core Razor – skrypt znajduje się w tym samym widoku, który hostuje formularz przesyłania, więc przepływ jest płynny.
  • MVC – użyj @section Scripts, aby wstrzyknąć ten sam fragment; kontroler zwraca JSON, który $.ajax MVC może odebrać.
  • WebForms – zarejestruj skrypt przy pomocy ClientScript.RegisterStartupScript po zakończeniu przesyłania, a następnie wywołaj launchViewer w ten sam sposób.

Ponieważ Doconut strumieniuje dokument bezpośrednio z podpisanego URL, serwer nie ma już kontaktu z plikiem po kroku przesyłania. Przeglądarka renderuje PDF‑y, pliki Word, rysunki CAD i wszystkie inne formaty wymienione w faktach produktu—bez dodatkowej konwersji po stronie serwera.


5. Dostosowywanie przeglądarki do Twojej marki – precyzyjne dopasowanie online file viewer

Przedsiębiorstwa często potrzebują, aby przeglądarka wyglądała jak natywna część ich portalu. UI Doconut App jest w pełni konfigurowalne i pozwala na:

DostosowanieJak zastosować w .NET
Układ paska narzędziPrzekaż toolbar: false i zbuduj własne przyciski, które wywołują API JavaScript przeglądarki (np. zoomIn(), print()).
Schemat kolorówUstaw theme: "dark" lub podaj własny plik CSS, który nadpisuje domyślne klasy.
Język i dostępnośćDoconut respektuje atrybut lang na kontenerze; możesz także wstrzyknąć etykiety ARIA poprzez opcję accessibility.
Hooki zdarzeńCallbacki takie jak onPageChange, onError i onDownload pozwalają logować metryki użycia w istniejącym potoku telemetrycznym.

Wszystkie te haki konfiguruje się w tym samym obiekcie JavaScript pokazanym w poprzedniej sekcji. Ponieważ przeglądarka działa wyłącznie po stronie klienta, nie generuje dodatkowego obciążenia serwera—Twój backend .NET pozostaje skoncentrowany na uwierzytelnianiu, szyfrowaniu i logice biznesowej.


6. Wydajność i skalowalność – zapewnij płynne doświadczenie

Osadzenie przeglądarki w portalu o dużym natężeniu ruchu rodzi dwa praktyczne wyzwania: czas ładowania i równoczesne renderowanie. Doconut App radzi sobie z nimi od razu, ale możesz wzmocnić wydajność kilkoma .NET‑specyficznymi sztuczkami.

ProblemWbudowana zaleta DoconutDodatkowa wskazówka .NET
Początkowe pobranieSkrypt przeglądarki ma zaledwie ~150 KB po gzipie.Włącz kompresję plików statycznych (app.UseResponseCompression()) i cache’owanie (Cache‑Control: public, max‑age=31536000).
Strumieniowanie plikuDoconut strumieniuje tylko potrzebne strony, używając żądań zakresowych HTTP.Przechowuj zaszyfrowane bloby w regionalnym CDN (Azure Front Door, Amazon CloudFront), aby skrócić opóźnienia.
Użytkownicy jednocześnieRenderowanie odbywa się po stronie klienta; serwer dostarcza zaszyfrowany plik tylko raz na widok.Ogranicz przepustowość punktu końcowego przesyłania przy pomocy IApplicationRateLimiter, aby chronić się przed nagłymi skokami.
Ślad pamięciBrak serwerowych bibliotek konwertujących PDF, więc proces ASP.NET pozostaje lekki.Uruchom usługę przesyłania w oddzielnym mikroserwisie, jeśli już korzystasz z kolejki zadań w tle.

Stosując się do tych zaleceń, możesz obsługiwać tysiące jednoczesnych przeglądarek bez konieczności skalowania warstwy .NET poza to, co już posiadasz.


Najważniejsze wnioski

  • Doconut App zapewnia bezpieczną, w pełni bezwtyczkową przeglądarkę, działającą z ASP.NET Core, MVC i WebForms.
  • Przesyłania są tylko przez SSL, przechowywane z szyfrowaniem AES‑256 i automatycznie usuwane po wygaśnięciu podpisanego URL.
  • Integracja wymaga jedynie skryptu CDN, elementu <div> i niewielkiego punktu końcowego po stronie serwera, który zwraca podpisany URL.
  • Przeglądarka obsługuje PDF, Office, CAD i ponad 50 formatów obrazu—bez konieczności konwersji po stronie serwera.
  • UI może być w pełni dostosowane do identyfikacji wizualnej firmy, a przeglądarka oferuje wbudowane narzędzia przybliżania, pomiaru i warstw dla plików CAD.
  • Wydajność jest obsługiwana po stronie klienta; programiści .NET muszą jedynie zadbać o kompresję plików statycznych i opcjonalne cache’owanie CDN.
  • Cały przepływ—od bezpiecznego przesyłania po renderowanie w przeglądarce—idealnie wpasowuje się w istniejące potoki uwierzytelniania i autoryzacji .NET.

Często zadawane pytania

P1: Czy muszę instalować jakiekolwiek pakiety NuGet, aby korzystać z Doconut?
Odp: Nie. Przeglądarka jest dostarczana jako pakiet JavaScript po stronie klienta z CDN Doconut. Twój serwer potrzebuje jedynie standardowego middleware ASP.NET Core do obsługi przesyłania plików i szyfrowania, które prawdopodobnie już masz.

P2: Jak Doconut zapewnia usunięcie pliku po obejrzeniu?
Odp: Doconut generuje krótkotrwały podpisany URL, który wygasa po określonym czasie (zwykle pięć minut). Po wygaśnięciu URL, Ty (lub zadanie czyszczące w tle) usuwasz zaszyfrowany blob. Gwarantuje to, że dokument nie jest przechowywany dłużej niż to konieczne, spełniając surowe polityki retencji danych.

P3: Czy mogę drukować lub eksportować dokument z przeglądarki?
Odp: Tak. Wbudowany pasek narzędzi Doconut zawiera opcje drukowania i eksportu, które zachowują oryginalną jakość i układ pliku źródłowego.


Gotowy, aby osadzić bezpieczną, zerową przeglądarkę dokumentów w swojej aplikacji .NET? Rozpocznij już dziś z Doconut App i dostarczaj PDF, Office, CAD oraz dziesiątki innych formatów szybko i bezpiecznie.