ClickOnce-implementatie en -beveiliging
ClickOnce is een implementatietechnologie waarmee u zelf-bijwerkende Windows-toepassingen kunt maken die kunnen worden geïnstalleerd en uitgevoerd met minimale gebruikersinteractie. Visual Studio biedt volledige ondersteuning voor het publiceren en bijwerken van toepassingen die zijn geïmplementeerd met ClickOnce-technologie als u uw projecten hebt ontwikkeld met Visual Basic en Visual C#. Zie ClickOnce Deployment for Visual C++ Applicationsvoor meer informatie over het implementeren van Visual C++-toepassingen.
ClickOnce-implementatie ondervangt drie belangrijke problemen in de implementatie:
Problemen bij het bijwerken van toepassingen. Bij de implementatie van Microsoft Windows Installer kan de gebruiker, wanneer een toepassing wordt bijgewerkt, een update, een msp-bestand installeren en toepassen op het geïnstalleerde product; met ClickOnce-implementatie kunt u automatisch updates opgeven. Alleen de onderdelen van de toepassing die zijn gewijzigd, worden gedownload en vervolgens wordt de volledige, bijgewerkte toepassing opnieuw geïnstalleerd vanuit een nieuwe map naast elkaar.
Invloed op de computer van de gebruiker. Met windows Installer-implementatie zijn toepassingen vaak afhankelijk van gedeelde onderdelen, met het potentieel voor versiebeheerconflicten; met ClickOnce-implementatie is elke toepassing zelfstandig en kan deze niet interfereren met andere toepassingen.
Beveiligingsmachtigingen. Windows Installer-implementatie vereist beheerdersmachtigingen en staat alleen beperkte gebruikersinstallatie toe; Met ClickOnce-implementatie kunnen gebruikers zonder beheerdersrechten alleen die machtigingen voor codetoegangsbeveiliging installeren en verlenen die nodig zijn voor de toepassing.
In het verleden hebben deze problemen soms ertoe geleid dat ontwikkelaars besluiten webtoepassingen te maken in plaats van Windows-toepassingen, waardoor een uitgebreide gebruikersinterface wordt opgeofferd voor een eenvoudige installatie. Door toepassingen te gebruiken die zijn geïmplementeerd met ClickOnce, kunt u het beste van beide technologieën hebben.
Wat is een ClickOnce-toepassing?
Een ClickOnce-toepassing is een Windows Presentation Foundation (.xbap), Windows Forms (.exe), consoletoepassing (.exe) of Office-oplossing (.dll) gepubliceerd met behulp van ClickOnce-technologie. U kunt een ClickOnce-toepassing op drie verschillende manieren publiceren: van een webpagina, van een netwerkbestandsshare of van verouderde media zoals een cd-rom. Een ClickOnce-toepassing kan worden geïnstalleerd op de computer van een eindgebruiker en lokaal worden uitgevoerd, zelfs wanneer de computer offline is of kan worden uitgevoerd in een onlinemodus zonder dat er permanent iets op de computer van de eindgebruiker hoeft te worden geïnstalleerd. Zie Een ClickOnce-implementatiestrategie kiezenvoor meer informatie.
ClickOnce-toepassingen kunnen zelf worden bijgewerkt; ze kunnen controleren op nieuwere versies zodra ze beschikbaar komen en automatisch bijgewerkte bestanden vervangen. De ontwikkelaar kan het updategedrag opgeven; Een netwerkbeheerder kan ook updatestrategieën beheren, bijvoorbeeld een update markeren als verplicht. Updates kunnen ook worden teruggedraaid naar een eerdere versie door de eindgebruiker of door een beheerder. Zie Een ClickOnce-updatestrategie kiezenvoor meer informatie.
Omdat ClickOnce-toepassingen zijn geïsoleerd, kan het installeren of uitvoeren van een ClickOnce-toepassing bestaande toepassingen niet verbreken. ClickOnce-toepassingen zijn zelfstandig; elke ClickOnce-toepassing wordt geïnstalleerd en uitgevoerd vanuit een beveiligde cache per gebruiker, per toepassing. ClickOnce-toepassingen worden uitgevoerd in de beveiligingszones van het internet of het intranet. Indien nodig kan de toepassing verhoogde beveiligingsmachtigingen aanvragen. Zie Secure ClickOnce-toepassingenvoor meer informatie.
Hoe ClickOnce-beveiliging werkt
De kernbeveiliging van ClickOnce is gebaseerd op certificaten, beveiligingsbeleid voor codetoegang en de ClickOnce-vertrouwensprompt.
Certificaten
Authenticode-certificaten worden gebruikt om de echtheid van de uitgever van de toepassing te verifiëren. Door Authenticode te gebruiken voor de implementatie van toepassingen, helpt ClickOnce te voorkomen dat een schadelijk programma zichzelf weergeeft als een legitiem programma dat afkomstig is van een gevestigde, betrouwbare bron. Certificaten kunnen ook worden gebruikt om de toepassing en implementatiemanifesten te ondertekenen om te bewijzen dat er niet met de bestanden is geknoeid. Zie ClickOnce and Authenticodevoor meer informatie. Certificaten kunnen ook worden gebruikt om clientcomputers te configureren voor een lijst met vertrouwde uitgevers. Als een toepassing afkomstig is van een vertrouwde uitgever, kan deze worden geïnstalleerd zonder tussenkomst van de gebruiker. Zie overzicht van de implementatie van vertrouwde toepassingenvoor meer informatie.
Beveiliging van codetoegang
Beveiliging van codetoegang helpt de toegang te beperken die code heeft tot beveiligde resources. In de meeste gevallen kunt u de zones Internet of Lokaal intranet kiezen om de machtigingen te beperken. Gebruik de pagina Security in de Project designer- om de zone aan te vragen die geschikt is voor de toepassing. U kunt ook fouten opsporen in toepassingen met beperkte machtigingen om de eindgebruikerservaring te emuleren. Zie Code-toegangsbeveiliging voor ClickOnce-toepassingenvoor meer informatie.
Notitie
In ClickOnce voor .NET Core en .NET 5 of hoger wordt deze functie niet ondersteund. Voor meer informatie, zie ClickOnce voor .NET.
ClickOnce-vertrouwensprompt
Als de toepassing meer machtigingen aanvraagt dan de zone toestaat, kan de eindgebruiker worden gevraagd om een vertrouwensbeslissing te nemen. De eindgebruiker kan beslissen of ClickOnce-toepassingen zoals Windows Forms-toepassingen, Windows Presentation Foundation-toepassingen, consoletoepassingen, XAML-browsertoepassingen en Office-oplossingen worden vertrouwd om uit te voeren. Zie voor meer informatie Procedure: Het gedrag van de ClickOnce-vertrouwensprompt configureren.
Hoe ClickOnce-implementatie werkt
De belangrijkste ClickOnce-implementatiearchitectuur is gebaseerd op twee XML-manifestbestanden: een toepassingsmanifest en een implementatiemanifest. De bestanden worden gebruikt om te beschrijven waar de ClickOnce-toepassingen vandaan worden geïnstalleerd, hoe ze worden bijgewerkt en wanneer ze worden bijgewerkt.
ClickOnce-toepassingen publiceren
In het toepassingsmanifest wordt de toepassing zelf beschreven. Dit omvat de assembly's, de afhankelijkheden en bestanden waaruit de toepassing bestaat, de vereiste machtigingen en de locatie waar updates beschikbaar zijn. De ontwikkelaar van de toepassing maakt het toepassingsmanifest met behulp van de wizard Publiceren in Visual Studio (publicatieprogramma voor .NET Core en .NET 5+) of het manifestgeneratie- en bewerkingsprogramma (Mage.exe) in de Windows Software Development Kit (SDK). Zie voor meer informatie:
In het implementatiemanifest wordt beschreven hoe de toepassing wordt geïmplementeerd. Dit omvat de locatie van het toepassingsmanifest en de versie van de toepassing die clients moeten uitvoeren.
Notitie
Gebruik in ClickOnce voor .NET Core 3.1 en .NET 5 of hoger dotnet-mage.exe in plaats van Mage.exe. Voor meer informatie, zie ClickOnce voor .NET.
ClickOnce-toepassingen implementeren
Nadat het is gemaakt, wordt het implementatiemanifest gekopieerd naar de implementatielocatie. Dit kan een webserver, netwerkbestandsshare of verouderde media zijn, zoals een cd. Het toepassingsmanifest en alle toepassingsbestanden worden ook gekopieerd naar een implementatielocatie die is opgegeven in het implementatiemanifest. Dit kan hetzelfde zijn als de implementatielocatie of een andere locatie. Wanneer u de wizard Publiceren in Visual Studio gebruikt, worden de kopieerbewerkingen automatisch uitgevoerd.
ClickOnce-toepassingen installeren
Nadat deze is geïmplementeerd op de implementatielocatie, kunnen eindgebruikers de toepassing downloaden en installeren door te klikken op een pictogram dat het distributiemanifestbestand weergeeft op een webpagina of in een map. In de meeste gevallen krijgt de eindgebruiker een eenvoudig dialoogvenster te zien waarin de gebruiker wordt gevraagd de installatie te bevestigen, waarna de installatie wordt voortgezet en de toepassing wordt gestart zonder extra tussenkomst. In gevallen waarin voor de toepassing verhoogde machtigingen zijn vereist of als de toepassing niet is ondertekend door een vertrouwd certificaat, wordt de gebruiker ook gevraagd om toestemming te verlenen voordat de installatie kan worden voortgezet. Hoewel ClickOnce-installaties per gebruiker zijn, is machtigingsverhoging mogelijk vereist als er vereisten zijn waarvoor beheerdersbevoegdheden zijn vereist. Zie ClickOnce-toepassingen beveiligenvoor meer informatie over verhoogde machtigingen.
Certificaten kunnen op computer- of ondernemingsniveau worden vertrouwd, zodat ClickOnce-toepassingen die zijn ondertekend met een vertrouwd certificaat op de achtergrond kunnen worden geïnstalleerd. Zie overzicht van de implementatie van vertrouwde toepassingenvoor meer informatie over vertrouwde certificaten.
De toepassing kan worden toegevoegd aan het Startmenu van de gebruiker en aan de groep Programma's toevoegen of verwijderen in het Configuratiescherm. In tegenstelling tot andere implementatietechnologieën wordt er niets toegevoegd aan de Program Files map of het register en zijn er geen beheerdersrechten vereist voor de installatie
Notitie
Het is ook mogelijk om te voorkomen dat de toepassing wordt toegevoegd aan het Startmenu en de groep Programma's toevoegen of verwijderen, waardoor het zich gedraagt als een webapplicatie. Zie Een ClickOnce-implementatiestrategie kiezenvoor meer informatie.
ClickOnce-toepassingen bijwerken
Wanneer de ontwikkelaars van de toepassing een bijgewerkte versie van de toepassing maken, genereren ze een nieuw toepassingsmanifest en kopiëren ze bestanden naar een implementatielocatie, meestal een map op hetzelfde niveau in de oorspronkelijke map voor toepassingsimplementatie. De beheerder werkt het implementatiemanifest bij zodat deze verwijst naar de locatie van de nieuwe versie van de toepassing.
Notitie
De Publiceerwizard in Visual Studio kan worden gebruikt om deze stappen uit te voeren. Voor .NET Core en .NET 5+ biedt het hulpprogramma Publish deze stappen.
Naast de implementatielocatie bevat het implementatiemanifest ook een updatelocatie (een webpagina of netwerkbestandsshare) waarin de toepassing controleert op bijgewerkte versies. ClickOnce Eigenschappen publiceren worden gebruikt om op te geven wanneer en hoe vaak de toepassing op updates moet controleren. Updategedrag kan worden opgegeven in het implementatiemanifest of kan worden weergegeven als gebruikerskeuzen in de gebruikersinterface van de toepassing door middel van de ClickOnce-API's. Daarnaast kunnen publiceren eigenschappen worden gebruikt om updates verplicht te maken of om terug te keren tot een eerdere versie. Zie Een ClickOnce-updatestrategie kiezenvoor meer informatie.
Installatieprogramma's van derden
U kunt uw ClickOnce-installatieprogramma aanpassen om onderdelen van derden samen met uw toepassing te installeren. U moet het herdistribueerbare pakket (.exe of .msi bestand) hebben en het pakket beschrijven met een taalneutraal productmanifest en een taalspecifiek pakketmanifest. Voor meer informatie, zie Bootstrapper-pakketten maken.
ClickOnce-hulpprogramma's
De volgende tabel bevat de hulpprogramma's die u kunt gebruiken om de toepassing en implementatiemanifesten te genereren, bewerken, ondertekenen en opnieuw te ondertekenen. Voor .NET Core en .NET 5+worden opties die vergelijkbaar zijn met MSBuild-kenmerken ingesteld met behulp van het publicatieprofiel.
Werktuig | Beschrijving |
---|---|
Beveiligingspagina, projectontwerper | Ondertekent de toepassings- en implementatiemanifesten. Voor .NET Core en .NET 5+ bevinden deze instellingen zich in het publicatieprofiel. |
Pagina publiceren, projectontwerper | Hiermee genereert en bewerkt u de toepassings- en implementatiemanifesten voor Visual Basic- en Visual C#-toepassingen. Voor .NET Core en .NET 5+ bevinden deze instellingen zich in het publicatieprofiel. |
Mage.exe (hulpprogramma voor het genereren en bewerken van manifesten) | Hiermee worden de toepassings- en implementatiemanifesten gegenereerd voor Visual Basic-, Visual C#- en Visual C++-toepassingen. Ondertekent en ondertekent de toepassings- en implementatiemanifesten opnieuw. Kan worden uitgevoerd vanuit batchscripts en de opdrachtprompt. |
dotnetmage.exe (hulpprogramma voor het genereren en bewerken van manifesten) | Hiermee worden de toepassings- en implementatiemanifesten gegenereerd voor .NET 5+ C# en Visual Basic-toepassingen. Het gebruik is gelijk aan Mage.exe. Ondertekent en ondertekent de toepassings- en implementatiemanifesten opnieuw. Kan worden uitgevoerd vanuit batchscripts en de opdrachtprompt. |
MageUI.exe (hulpprogramma voor het genereren en bewerken van manifesten, grafische client) | Hiermee worden de toepassings- en implementatiemanifesten gegenereerd en bewerkt. Ondertekent en ondertekent de toepassings- en implementatiemanifesten opnieuw. |
Taak GenerateApplicationManifest | Hiermee wordt het toepassingsmanifest gegenereerd. Kan worden uitgevoerd vanuit MSBuild. Zie MSBuild referencevoor meer informatie. |
GenerateDeploymentManifest-taak | Hiermee wordt het implementatiemanifest gegenereerd. Kan worden uitgevoerd vanuit MSBuild. Zie MSBuild referencevoor meer informatie. |
SignFile-taak | Ondertekent de toepassings- en implementatiemanifesten. Kan worden uitgevoerd vanuit MSBuild. Zie MSBuild referencevoor meer informatie. |
Microsoft.Build.Tasks.Deployment.ManifestUtilities | Ontwikkel uw eigen toepassing om de toepassing en implementatiemanifesten te genereren. |
In de volgende tabel ziet u de versie van .NET Framework die is vereist voor de ondersteuning van ClickOnce-toepassingen in deze browsers.
Webbrowser | .NET Framework-versie |
---|---|
Firefox | 2.0 SP1, 3.5 SP1, 4 |
Chroom | 3.5 |
Microsoft Edge | 3.5 |
Verwante inhoud
- ClickOnce-toepassingen publiceren
- Secure ClickOnce-toepassingen
- COM-onderdelen implementeren met ClickOnce-
- ClickOnce-toepassingen bouwen vanaf de opdrachtregel
- Fouten opsporen in ClickOnce-toepassingen die gebruikmaken van System.Deployment.Application
- ClickOnce-implementatie in oudere versies van Windows