Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ClickOnce-program omfattas av säkerhetsbegränsningar för kodåtkomst i .NET Framework för att begränsa den åtkomst som koden har till skyddade resurser och åtgärder. Därför är det viktigt att du förstår konsekvenserna av kodåtkomstsäkerhet för att skriva dina ClickOnce-program i enlighet med detta. Dina program kan använda fullständigt förtroende eller använda partiella zoner, till exempel Internet- och intranätzoner, för att begränsa åtkomsten.
Dessutom använder ClickOnce certifikat för att verifiera programmets utgivares äkthet och för att signera program- och distributionsmanifesten för att bevisa att filerna inte har manipulerats. Signering är ett valfritt steg, vilket gör det enklare att ändra programfilerna när manifesten har genererats. Men utan signerade manifest är det svårt att se till att programinstallationsprogrammet inte manipuleras i man-in-the-middle-säkerhetsattacker. Därför rekommenderar vi att du signerar program- och distributionsmanifest för att skydda dina program.
Zoner
Program som distribueras med Hjälp av ClickOnce-teknik är begränsade till en uppsättning behörigheter och åtgärder som definieras av säkerhetszonen. Säkerhetszoner definieras i webbläsaren och baseras på programmets plats. I följande tabell visas standardbehörigheterna baserat på distributionsplatsen:
| Distributionsplats | Säkerhetszon |
|---|---|
| Kör från webben | Internetzon |
| Installera från webben | Internetzon |
| Installera från nätverksfildelning | Lokal intranätzon |
| Installera från CD-ROM | Fullständigt förtroende |
Standardbehörigheterna baseras på den plats från vilken den ursprungliga versionen av programmet distribuerades. uppdateringar av programmet ärver dessa behörigheter. Om programmet är konfigurerat för att söka efter uppdateringar från en webb- eller nätverksplats och en nyare version är tillgänglig, kan den ursprungliga installationen ta emot behörigheter för zonen Internet eller Intranät i stället för fullständig behörighet. För att förhindra att användare uppmanas kan en systemadministratör ange en ClickOnce-distributionsprincip som definierar en specifik programutgivare som en betrodd källa. För datorer där den här principen distribueras beviljas behörigheter automatiskt och användaren uppmanas inte att göra det. Mer information finns i Översikt över distribution av betrodda program. För att konfigurera distribution av betrodda program kan certifikatet installeras på dator- eller företagsnivå. Mer information finns i Så här lägger du till en betrodd utgivare på en klientdator för ClickOnce-program.
Anmärkning
I ClickOnce för .NET Core och .NET 5 eller senare stöds inte den här funktionen. Mer information finns i ClickOnce för .NET.
Säkerhetsprinciper för kodåtkomst
Behörigheter för ett program bestäms av inställningarna i elementet <trustInfo> Element i programmanifestet. Visual Studio genererar automatiskt den här informationen baserat på inställningarna på projektets egenskapssida Säkerhet . Ett ClickOnce-program beviljas endast de specifika behörigheter som det begär. Om filåtkomst till exempel kräver fullständig behörighet, om programmet begär filåtkomstbehörighet, beviljas det bara filåtkomstbehörighet, inte behörigheter med fullständigt förtroende. När du utvecklar ditt ClickOnce-program bör du se till att du endast begär de specifika behörigheter som programmet behöver. I de flesta fall kan du använda Internet- eller lokala intranätzoner för att begränsa programmet till partiellt förtroende. Mer information finns i Så här: Ange en säkerhetszon för ett ClickOnce-program. Om programmet kräver anpassade behörigheter kan du skapa en anpassad zon. Mer information finns i Så här: Ange anpassade behörigheter för ett ClickOnce-program.
Anmärkning
I ClickOnce för .NET Core och .NET 5 eller senare stöds inte Code Access Security. I .NET Framework är användningen av Code Access Security inte en bra metod och rekommenderas inte.
Om du inkluderar en behörighet som inte ingår i standardbehörighetsuppsättningen för zonen som programmet distribueras från uppmanas slutanvändaren att bevilja behörighet vid installation eller uppdatering. För att förhindra att användare uppmanas kan en systemadministratör ange en ClickOnce-distributionsprincip som definierar en specifik programutgivare som en betrodd källa. På datorer där den här principen distribueras beviljas behörigheter automatiskt och användaren uppmanas inte.
Som utvecklare är det ditt ansvar att se till att programmet körs med rätt behörigheter. Om programmet begär behörigheter utanför en zon under körningstiden kan ett säkerhetsfel visas. Med Visual Studio kan du felsöka ditt program i målsäkerhetszonen och ge hjälp med att utveckla säkra program. Mer information finns i Felsöka ClickOnce-appar som använder System.Deployment.Application.
Mer information om kodåtkomstsäkerhet och ClickOnce finns i Kodåtkomstsäkerhet för ClickOnce-program.
Kodsigneringscertifikat
Om du vill publicera ett program med hjälp av ClickOnce-distributionen kan du signera program- och distributionsmanifesten för programmet med hjälp av ett offentligt/privat nyckelpar. Verktygen för att signera ett manifest finns på signeringssidan för Projektdesignern. Mer information finns i Signeringssida, Projektdesigner.
När manifesten har signerats visas utgivarinformationen baserat på Authenticode-signaturen för användaren i dialogrutan behörigheter under installationen för att visa användaren att programmet kommer från en betrodd källa.
Mer information om ClickOnce och certifikat finns i ClickOnce och Authenticode.
ASP.NET formulärbaserad autentisering
Om du vill styra vilka distributioner som varje användare kan komma åt bör du inte aktivera anonym åtkomst till ClickOnce-program som distribueras på en webbserver. I stället ger du användare åtkomst till de utplaceringar som du har installerat baserat på en användares identitet med hjälp av Windows-autentisering.
ClickOnce stöder inte ASP.NET formulärbaserad autentisering eftersom den använder beständiga cookies. dessa utgör en säkerhetsrisk eftersom de finns i webbläsarens cacheminne och kan hackas. Om du distribuerar ClickOnce-program stöds därför inte något autentiseringsscenario förutom Windows-autentisering.
Ange argument
En ytterligare säkerhetsövervägande inträffar om du måste skicka argument till ett ClickOnce-program. ClickOnce gör det möjligt för utvecklare att ange en frågesträng till program som distribueras via webben. Frågesträngen har formen av en serie namn/värde-par i slutet av den URL som används för att starta programmet:
http://servername.adatum.com/WindowsApp1.application?username=joeuser
Som standard är frågesträngsargument inaktiverade. För att aktivera dem måste attributet trustUrlParameters anges i programmets distributionsmanifest. Det här värdet kan anges från Visual Studio och från MageUI.exe. Detaljerade steg om hur du aktiverar överföring av frågesträngar finns i How to: Retrieve query string information in an online ClickOnce application (Så här hämtar du frågesträngsinformation i ett Online ClickOnce-program).
Du bör aldrig skicka argument som hämtats via en frågesträng till en databas eller till kommandoraden utan att kontrollera argumenten för att se till att de är säkra. Osäkra argument är de som innehåller escape-tecken för databas eller kommandorad som kan göra det möjligt för en obehörig användare att ändra programmet till att köra godtyckliga kommandon.
Anmärkning
Frågesträngsargument är det enda sättet att skicka argument till ett ClickOnce-program vid start. Du kan inte skicka argument till ett ClickOnce-program från kommandoraden.
Distribuera obfuskerade sammansättningar
Visual Studio innehåller det kostnadsfria förebyggande skyddet – Dotfuscator Community, som du kan använda för att skydda dina ClickOnce-program genom kodfördunkling och aktiva skyddsåtgärder. Mer information finns i avsnittet ClickOnce i användarhandboken för Dotfuscator Community.