Zabezpečení přístupu ke kódu pro aplikace ClickOnce

Aplikace ClickOnce jsou založené na rozhraní .NET Framework a podléhají omezením zabezpečení přístupu kódu. Z tohoto důvodu je důležité porozumět důsledkům zabezpečení přístupu kódu a odpovídajícím způsobem psát aplikace ClickOnce.

Zabezpečení přístupu kódu je mechanismus v rozhraní .NET Framework, který pomáhá omezit přístup, který má kód k chráněným prostředkům a operacím. Měli byste nakonfigurovat oprávnění zabezpečení přístupu kódu pro aplikaci ClickOnce tak, aby používala zónu odpovídající umístění instalačního programu aplikace. Ve většině případů můžete zvolit zónu Internetu pro omezenou sadu oprávnění nebo zónu Místního intranetu pro větší sadu oprávnění.

Poznámka:

V ClickOnce pro .NET Core a .NET 5 nebo novější není tato funkce podporována. Další informace naleznete v tématu ClickOnce pro .NET.

Výchozí zabezpečení přístupu kódu ClickOnce

Ve výchozím nastavení aplikace ClickOnce obdrží oprávnění úplné důvěryhodnosti při instalaci nebo spuštění v klientském počítači.

  • Aplikace s oprávněním Úplné důvěryhodnosti má neomezený přístup k prostředkům, jako je systém souborů a registr. To může vaší aplikaci (a systému koncového uživatele) zneužít škodlivý kód.

  • Pokud aplikace vyžaduje oprávnění úplné důvěryhodnosti, může se koncovému uživateli zobrazit výzva k udělení oprávnění k aplikaci. To znamená, že aplikace skutečně neposkytuje prostředí ClickOnce a výzva může být matoucí méně zkušeným uživatelům.

    Poznámka:

    Při instalaci aplikace z vyměnitelného média, jako je cd-ROM, se uživateli nezobrazí výzva. Správce sítě navíc může nakonfigurovat zásady sítě tak, aby se uživatelům při instalaci aplikace z důvěryhodného zdroje nezohrožovala výzva. Další informace naleznete v tématu Přehled nasazení důvěryhodné aplikace.

    Pokud chcete omezit oprávnění pro aplikaci ClickOnce, můžete upravit oprávnění zabezpečení přístupu kódu pro vaši aplikaci tak, aby požadovala zónu, která nejlépe vyhovuje oprávněním, která vaše aplikace vyžaduje. Ve většině případů můžete vybrat zónu, ze které se aplikace nasazuje. Pokud je vaše aplikace například podniková aplikace, můžete použít zónu Místní intranet . Pokud je vaše aplikace internetovou aplikací, můžete použít zónu Internetu .

Konfigurace oprávnění zabezpečení

Aplikaci ClickOnce byste měli vždy nakonfigurovat tak, aby požadovala příslušnou zónu, aby omezila oprávnění zabezpečení přístupu kódu. Oprávnění zabezpečení můžete nakonfigurovat na stránce Zabezpečení návrháře projektu.

Stránka Zabezpečení v Návrháři projektu obsahuje zaškrtávací políčko Povolit zabezpečení ClickOnce Nastavení. Pokud je toto políčko zaškrtnuté, požadavky na oprávnění zabezpečení se přidají do manifestu nasazení pro vaši aplikaci. V době instalace se uživateli zobrazí výzva k udělení oprávnění, pokud požadovaná oprávnění překročí výchozí oprávnění pro zónu, ze které je aplikace nasazená. Další informace naleznete v tématu Postupy: Povolení nastavení zabezpečení ClickOnce.

Aplikace nasazené z různých umístění mají udělené různé úrovně oprávnění bez výzvy. Když je například aplikace nasazená z internetu, obdrží vysoce omezující sadu oprávnění. Při instalaci z místního intranetu obdrží další oprávnění a při instalaci z disku CD-ROM obdrží oprávnění úplné důvěryhodnosti.

Jako výchozí bod pro konfiguraci oprávnění můžete vybrat zónu zabezpečení ze seznamu zón na stránce Zabezpečení . Pokud se vaše aplikace potenciálně nasadí z více než jedné zóny, vyberte zónu s nejmenšími oprávněními. Další informace naleznete v tématu Postupy: Nastavení zóny zabezpečení pro aplikaci ClickOnce.

Vlastnosti, které lze nastavit, se liší podle sady oprávnění; ne všechny sady oprávnění mají konfigurovatelné vlastnosti. Další informace o úplném seznamu oprávnění, která může vaše aplikace požadovat, najdete v tématu System.Security.Permissions. Další informace o nastavení oprávnění pro vlastní zónu naleznete v tématu Postupy: Nastavení vlastních oprávnění pro aplikaci ClickOnce.

Ladění aplikace s omezenými oprávněními

Jako vývojář pravděpodobně spustíte vývojový počítač s oprávněními úplné důvěryhodnosti. Proto se při ladění aplikace nezobrazí stejné výjimky zabezpečení, které můžou uživatelé vidět při jeho spuštění s omezenými oprávněními.

Pokud chcete tyto výjimky zachytit, musíte aplikaci ladit se stejnými oprávněními jako koncový uživatel. Ladění s omezenými oprávněními lze povolit na stránce Zabezpečení návrháře projektu.

Při ladění aplikace s omezenými oprávněními budou vyvolány výjimky pro všechny požadavky na zabezpečení kódu, které nebyly povoleny na stránce Zabezpečení . Zobrazí se pomocná rutina výjimky s návrhy, jak upravit kód, aby se zabránilo výjimce.

Kromě toho při psaní kódu funkce IntelliSense v Editoru kódu zakáže všechny členy, které nejsou součástí nakonfigurovaných oprávnění zabezpečení.

Další informace naleznete v tématu Postupy: Ladění aplikace ClickOnce s omezenými oprávněními.

Oprávnění zabezpečení pro aplikace hostované v prohlížeči

Visual Studio poskytuje následující typy projektů pro aplikace WPF (Windows Presentation Foundation):

  • Aplikace WPF pro Windows

  • Aplikace webového prohlížeče WPF

  • Knihovna vlastních ovládacích prvků WPF

  • Knihovna služeb WPF

    Z těchto typů projektů jsou ve webovém prohlížeči hostovány pouze aplikace webového prohlížeče WPF, a proto vyžadují speciální nastavení nasazení a zabezpečení. Výchozí nastavení zabezpečení pro tyto aplikace jsou následující:

  • Povolení Nastavení zabezpečení ClickOnce

  • Jedná se o částečně důvěryhodnou aplikaci.

  • Zóna internetu (s výchozím nastavením oprávnění pro aplikace webového prohlížeče WPF)

    V dialogovém okně Rozšířené zabezpečení Nastavení je zaškrtnuto a zakázáno políčko Ladit tuto aplikaci s vybranou sadou oprávnění. Důvodem je to, že ladění v zóně nelze vypnout pro aplikace hostované v prohlížeči.