IRONSOFTWAREHOME
PORÓWNANIA PRODUKTÓW

Poznaj najlepsze alternatywy PDF-do-Obraz do PDFsharp

Curtis Chau
Curtis Chau
Updated: 5 lipca 2026

Większość zadań HTML-to-PDF nie działa z tego samego powodu: strona wygląda dobrze dopiero po zalogowaniu się użytkownika. IronPDF napędza silnik Chrome, więc widzi to, co widziałaby niezalogowana przeglądarka, ekran logowania lub pustą powłokę, dopóki nie poda mu się odpowiednich ciasteczek. Trzy elementy API rozwiązują to: właściwość RequestContext, metoda ApplyCookies i słownik CustomCookies. Oto, gdzie każdy pasuje, z kawałkiem kodu do dopasowania.

Renderowanie faktur i wyciągów za logowaniem

Faktura klienta znajduje się na trasie chronionej sesją, a Twoja aplikacja już posiada jego sesję. Przekaż ten identyfikator sesji bezpośrednio przez CustomCookies:

using IronPdf;
using System.Collections.Generic;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;
renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "ASP.NET_SessionId", sessionId }
};

renderer.RenderUrlAsPdf("https://app.example.com/account/invoices/1042")
        .SaveAs("invoice-1042.pdf");

W przypadku podstawowego lub Windows authentication sięgnij po ApplyCookies zamiast tego. Loguje się na URL z podanymi danymi uwierzytelniającymi i przechwytuje utworzone ciasteczka w globalnym kontekście, które następny renderowanie ponownie używa:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;

var credentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "svc_reports",
    NetworkPassword = "your_password"
};

string uri = "https://app.example.com/account/invoices/1042";
renderer.ApplyCookies(uri, credentials);

renderer.RenderUrlAsPdf(uri).SaveAs("invoice-1042.pdf");

Uwierzytelnianie oparte na tokenach i zewnętrzne

Nowoczesne aplikacje rzadko polegają na prostych poświadczeniach HTTP. Uwierzytelniają się za pomocą JWT, OAuth, lub SAML, często zapisując wynik w ciasteczku. Ponieważ CustomCookies przyjmuje dowolną parę klucz-wartość, można bezpośrednio użyć tokena dostępu lub ciasteczka dostawcy tożsamości:

renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "auth_token", jwt },
    { "refresh_token", refreshToken }
};

Spersonalizowane i lokalizowane dokumenty

Ciasteczka często przenoszą stan lokalizacji, waluty lub flagi funkcji. Przekaż je dalej, a PDF odpowiada temu, co widzi dany użytkownik, w odpowiednim języku i walucie:

renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "locale", "en-AU" },
    { "currency", "AUD" },
    { "feature_newLayout", "on" }
};

Generowanie wsadowe, które dzieli jedną sesję

Aby wygenerować wiele plików PDF dla tego samego uwierzytelnionego użytkownika w kolejności, ustaw RequestContext na Global. Stan przeglądarki, w tym ciasteczka, trwa między renderowaniami, więc uwierzytelniasz się raz, zamiast każdego dokumentu osobno:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;
renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "ASP.NET_SessionId", sessionId }
};

foreach (var id in invoiceIds)
{
    renderer.RenderUrlAsPdf($"https://app.example.com/invoices/{id}")
            .SaveAs($"invoice-{id}.pdf");
}

Równoczesne renderowanie bez przeplatania ciasteczek

Przeciwny scenariusz ma takie samo znaczenie. Usługa renderująca dla wielu różnych użytkowników jednocześnie potrzebuje kontekstu Isolated, co daje każdemu renderowi czysty stan i zapobiega przenikaniu sesji jednego użytkownika do dokumentów innych. Daj każdemu wątkowi własny renderer:

using System.Threading.Tasks;

Parallel.ForEach(jobs, job =>
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Isolated;
    renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
    {
        { "ASP.NET_SessionId", job.SessionId }
    };

    renderer.RenderUrlAsPdf(job.Url).SaveAs(job.OutputPath);
});

Dopasowanie metody do zadania

Użyj standardowych ciasteczek (ApplyCookies) dla podstawowego uwierzytelniania HTTP, Windows authentication i prostych sesji. Sięgnij po CustomCookies przy użyciu tokenów, sesji wieloparametrowych, dostawców zewnętrznych i przechowywanych preferencji. Wybierz Global, aby współdzielić stan pomiędzy renderami, oraz Isolated, aby je oddzielić; Auto domyślnie zostaje oddzielony i przełącza się na globalny, gdy wywołany zostaje ApplyCookies.

Większość niepowodzeń skupia się wokół wygasłych tokenów, niedopasowanych domen ciasteczek, obsługi bezpiecznych ciasteczek na adresach URL HTTPS i zasad SameSite przy żądaniach spoza domeny. Potwierdzaj ważność ciasteczek przed renderowaniem i polegaj na Global, gdy sesje muszą być utrzymywane.

Kiedy ciasteczka stanowią całe zadanie

Ciasteczka nie są przypadkiem granicznym w generowaniu PDF. Zrobisz to dobrze, a wyślesz użyteczny dokument; zrobisz to źle, a wyślesz zrzut ekranu formularza logowania.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta