Wielu programistów zaczyna od poszukiwania bibliotek komponentów UI, gdy potrzebują wyświetlać dokumenty w aplikacji internetowej. Doconut Viewer to SDK .NET umożliwiające dodanie przeglądania w przeglądarce bez wtyczek do projektów ASP.NET Core, MVC lub klasycznych WebForms. Bezpieczeństwo nadal zależy od pełnej architektury aplikacji: uwierzytelniania, autoryzacji, transportu, przechowywania, walidacji, czyszczenia, aktualizacji i monitorowania.

1. Zainstaluj SDK Doconut App i przygotuj swój projekt .NET do obsługi wielu formatów plików
1.1 Dodaj obsługiwany pakiet
Użyj aktualnego pakietu oraz instrukcji instalacji ze strony oficjalnej strona pobierania Doconut. Zanotuj wybraną wersję i zweryfikuj, że obsługuje docelowy runtime .NET.
1.2 Zweryfikuj odwołanie do pakietu
Po instalacji potwierdź odwołanie do pakietu oraz rozpoznaną wersję w pliku projektu. Utrzymywanie wersji w sposób jawny pomaga uczynić kompilacje i wdrożenia powtarzalnymi.
1.3 Włącz HTTPS
Udostępniaj aplikację przez HTTPS, aby przesyłane dokumenty nie podróżowały w postaci niezaszyfrowanej w Twojej sieci. Dla aplikacji hostowanej w Kestrel dodaj konfigurację punktu końcowego w appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
Jeśli hostujesz na IIS, przypisz certyfikat HTTPS do witryny. Po włączeniu HTTPS plik przemieszcza się przez bezpieczny kanał w drodze do Twojego własnego serwera, gdzie SDK go renderuje.
Skąd pochodzi bezpieczeństwo. SDK działa wewnątrz Twojej aplikacji, na Twojej infrastrukturze: nie wykonuje żadnych połączeń z serwerami Doconut, więc dokumenty nigdy nie opuszczają Twojej sieci. To cecha, wokół której warto projektować. Nie jest to certyfikat zgodności — SDK nie posiada własnych atestacji ISO 27001, SOC 2 ani HIPAA i nie może ich przyznać Twojej aplikacji. To, co robi, to utrzymanie pliku w granicach, które już kontrolujesz i audytujesz.
2. Skonfiguruj bezpieczne przesyłanie plików i przechowywanie dla zarządzania dokumentami
To jest część, która należy do Ciebie, a nie do SDK, i warto to jasno powiedzieć: bezpieczeństwo transportu, szyfrowanie w spoczynku, retencja i czyszczenie to decyzje podejmowane przez Twoją aplikację. SDK renderuje dokumenty; nie jest warstwą przechowywania i nie szyfruje Twojego dysku.
2.1 Zarejestruj usługi
W Startup.cs (lub Program.cs w nowoczesnym .NET) zarejestruj usługi Doconut w kontenerze wstrzykiwania zależności zgodnie z dokumentacją wersji, którą zainstalowałeś. Tam, gdzie SDK potrzebuje folderu roboczego do tymczasowego renderowania, wskaż miejsce, które kontrolujesz, i potraktuj czyszczenie tego folderu jako swoją odpowiedzialność — zaplanowane zadanie lub cykl życia zarządzany przez aplikację, a nie domyślną praktykę.
2.2 Utwórz punkt końcowy przesyłania
Zaimplementuj akcję kontrolera, która odbiera przesłany plik, zapisuje go w dowolnym magazynie używanym już przez Twoją aplikację i zwraca krótki jednorazowy token. Token jest tym, czego użyje przeglądarka po stronie klienta, aby pobrać i wyrenderować dokument. Pamiętaj, że przechowywanie leży po Twojej stronie: przekazujesz SDK bajty lub ścieżkę w momencie renderowania, a ono zwraca Ci strony.
2.3 Zabezpiecz punkt końcowy
Ponieważ punkt końcowy przesyłania obsługuje wrażliwe dane, zabezpiecz go przy użyciu uwierzytelniania i autoryzacji opartej na rolach (na przykład, tylko użytkownicy z rolą DocumentViewer mogą przesyłać). Waliduj rozszerzenie i rozmiar po stronie serwera oraz w przeglądarce i traktuj przesłane bajty jako niepewne dane wejściowe.
Nie pomijaj tego zakładając, że SDK to obejmuje. Szyfrowanie w spoczynku, zarządzanie kluczami i czyszczenie osieroconych plików to zadania Twojej aplikacji. Jeśli potrzebujesz dokumentów zaszyfrowanych na dysku, użyj już zaufanych mechanizmów platformy — przeglądarka nie jest miejscem, w którym to powinno się odbywać.
3. Osadzenie komponentu przeglądarki w ASP.NET Core, MVC lub WebForms
Po przygotowaniu backendu, zainicjalizuj przeglądarkę, używając zasobów i API udokumentowanych dla zainstalowanej wersji Doconut.
3.1 Dodaj pakiet JavaScript
W swoim wspólnym układzie (layout), dołącz tylko zasoby przeglądarki opisane w dokumentacji pasującej do zainstalowanego SDK. Nie zakładaj stałych nazw pakietów ani lokalizacji w różnych wersjach.
3.2 Utwórz widok Razor dla Core/MVC
Dodaj widok (np. Views/Document/View.cshtml), który zawiera pole wyboru pliku, element kontenera dla przeglądarki oraz mały skrypt, który przesyła wybrany plik, otrzymuje bezpieczny token i inicjalizuje widget Doconut Viewer.
Skrypt powinien:
- Pobierz wybrany plik z elementu
<input type="file">. - Wyślij plik do punktu końcowego uploadu używając
fetchlubXMLHttpRequest. - Gdy otrzymasz autoryzowaną odpowiedź, zainicjalizuj przeglądarkę przy użyciu obsługiwanego API dla zainstalowanej wersji.
3.3 Odpowiednik dla WebForms
W stronie WebForms (np. DocumentViewer.aspx), umieść kontrolkę asp:FileUpload, przycisk uruchamiający przesyłanie oraz element <div>, który będzie hostował przeglądarkę. W kodzie zaplecza wywołaj usługę Doconut, aby przechować przesłany plik, uzyskać token i zarejestrować skrypt startowy, który wywołuje funkcję JavaScript (initViewer(token)) tworzącą instancję przeglądarki.
Powód, dla którego warto to zrobić w ten sposób: jedna ścieżka renderowania obsługująca trzy modele UI .NET, bez żadnego oprogramowania instalowanego na komputerze końcowego użytkownika.
4. Dostosowanie przeglądarki do zarządzania dokumentami
Przeglądarka renderuje się wewnątrz kontenera na Twojej własnej stronie, więc otaczająca aplikacja jest już Twoja. Poza tym, pobieraj nazwy opcji i wartości domyślne z dokumentacji dla zainstalowanej wersji, a nie z żadnego tutorialu, w tym tego — interfejs konfiguracyjny zmienia się pomiędzy wydaniami i sztywno zakodowana nazwa opcji jest najprawdopodobniej tym, co przestanie działać po aktualizacji.
Kwestie warte rozważenia z góry:
4.1 Jakie kontrolki otrzyma użytkownik
Zdecyduj, czy Twoi użytkownicy powinni mieć możliwość pobrania oryginalnego pliku, czy tylko przeglądania wyrenderowanych stron. Kontrolowane drukowanie jest częścią przeglądarki, a nie oddzielnym zakupem, więc zasady drukowania to kwestia konfiguracji, a nie licencjonowania.
4.2 Które wtyczki naprawdę potrzebujesz
Cztery z nich są licencjonowane oddzielnie, a lista jest na tyle krótka, że warto ją zapamiętać: Annotation, Converter, DICOM i Search. Konwersja — DOC do PDF i inne — to wtyczka Converter. Wyszukiwanie tekstu to wtyczka Search. Jeśli nie potrzebujesz żadnej z nich, nie kupuj żadnej.
4.3 Lokalizacja
Jeśli Twoja aplikacja jest wielojęzyczna, sprawdź, jakie ciągi interfejsu przeglądarki oferuje zainstalowana wersja, zanim zaczniesz projektować wokół nich.
Dlaczego to ważne: przeglądarka powinna wyglądać jak część Twojego produktu. Nie powinna natomiast cicho obiecywać użytkownikom funkcji, które nie są zawarte w zakupionej licencji.
5. Testowanie integracji we wszystkich obsługiwanych formatach
Przed uruchomieniem produkcyjnym, przeprowadź szybki test poprawności dla każdego typu pliku, który spodziewasz się, że użytkownicy będą przeglądać. Korzystając z przeglądarki Doconut App, otwórz przykładowy plik każdego formatu i zweryfikuj, że renderowanie, nawigacja i wszelkie specjalistyczne narzędzia działają zgodnie z opisem.
| Format | Scenariusz testowy | Oczekiwany wynik |
|---|---|---|
| Duży, wielostronicowy raport z osadzonymi obrazami | Płynne przewijanie, zoom i dokładne odwzorowanie kolorów | |
| DOCX | Dokument Word z tabelami i przypisami | Wszystkie teksty, tabele i przypisy widoczne; brak przesunięć układu |
| XLSX | Arkusz kalkulacyjny z wykresami | Wykresy renderują się jako grafika wektorowa; przy powiększeniu zachowują ostrość |
| PPTX | Prezentacja ze slajdami z animowanymi budowami | Każda budowa na slajdzie renderuje się ułożona w jednej klatce — to jest oczekiwane, a nie błąd |
| DWG | Rysunek techniczny z warstwami i odwołaniami zewnętrznymi | Przełączanie warstw, pomiar odległości i powierzchni działa; odwołania zewnętrzne i czcionki SHX są nieobecne, ponieważ nigdy nie były w pliku |
| PSD | Plik Photoshop z warstwami | Zapisany kompozyt renderuje się, ukryte warstwy pozostają ukryte; kolory zachowują ostrość przy powiększeniu |
| SVG | Grafika wektorowa z gradientami | Gradienty renderują się płynnie; przy powiększeniu zachowują ostrość |
| TIFF | Skan wysokiej rozdzielczości | Obraz ładuje się szybko; przy powiększeniu ujawnia szczegóły |
Testuj rzeczywistymi plikami użytkowników, a nie czystymi przykładami. Formatami, które zaskakują ludzi, są te, których dziwactwa leżą w samym formacie — DWG odwołujący się do czterech innych rysunków, arkusz kalkulacyjny, którego zapisane wartości nigdy nie zostały przeliczone, prezentacja, w której czcionki nie zostały osadzone. Darmowa przeglądarka pod adresem Doconut.app korzysta z tego samego silnika, więc jest szybkim sposobem, aby zobaczyć, jak konkretny trudny plik zostanie wyświetlony przed napisaniem jakiegokolwiek kodu.
Conclusion
Umieszczenie przeglądarki dokumentów bez wtyczek sprowadza się do czterech rzeczy: zainstalowania SDK, zabezpieczenia własnej ścieżki przesyłania, renderowania w kontenerze na stronie oraz skonfigurowania jedynie tego, co dokumentuje zainstalowana wersja. Wkład przeglądarki w bezpieczeństwo jest wąski i rzeczywisty — działa na Twoich serwerach i nie wysyła nic na zewnątrz. Wszystko pozostałe na tej liście należy do Twojej aplikacji i żadne SDK nie może tego przejąć za Ciebie.
Gotowy, aby to ocenić? Zacznij od oficjalna strona pobierania i dokumentacji Doconut, a następnie przetestuj SDK w ramach tej samej oceny bezpieczeństwa stosowanej do reszty Twojej aplikacji ASP.NET działającej na Windows.