Share via


Přístup k místním a vzdáleným datům v aplikacích ClickOnce

Většina aplikací spotřebovávají nebo tvoří data. ClickOnce vám nabízí řadu možností pro čtení a zápis dat, jak místně tak i vzdáleně.

Místní data

S ClickOnce můžete načíst a uložit data místně pomocí jedné z následujících metod:

  • ClickOnce Adresář Dat

  • Izolované úložiště

  • Jiné místní soubory

ClickOnce adresář data

Každá aplikace ClickOnce instalovaná v místním počítači má datový adresář, uložený ve složce Documents and Settings daného uživatele. Jakýkoli soubor obsažený v aplikaci ClickOnce a označený jako "datový" soubor, je zkopírován do tohoto adresáře při aplikaci. Datové soubory mohou být libovolného typu souboru, nejčastěji používanými jsou text, XML a databázové soubory, jako jsou například soubory .mdb aplikace Access.

Datový adresář je určen pro data spravovaná aplikací, která jsou data explicitně uchovávaná a udržovaná aplikací. Všechny statické nezávislé soubory nejsou označeny jako "data" v manifestu aplikace, místo toho jsou umístěny v adresáři aplikace. Tento adresář je, kde jsou uloženy spustitelné soubory (.exe) a sestavení aplikace.

Poznámka

Při odinstalování aplikace ClickOnce je odebrán i její datový adresář. Nikdy nepoužívejte datový adresář pro ukládání dat koncového uživatele, jako jsou například dokumenty.

Označení datových souborů v distribuci ClickOnce

Chcete-li vložit existující soubor do datového adresáře, je třeba označit existující soubor jako datový ve vašem souboru manifestu aplikace ClickOnce. Další informace naleznete v tématu Postupy: Zahrnutí datového souboru v aplikaci ClickOnce.

Čtení a zápis do datového adresáře

Čtení z datového adresáře vyžaduje, aby měla vaše aplikace ClickOnce oprávnění ke čtení; zapisování do adresáře vyžaduje obdobně oprávnění k zápisu. Aplikace bude mít automaticky toto oprávnění, pokud je nakonfigurována pro spuštění s úrovní úplné důvěryhodnosti. Další informace o zvyšování oprávnění aplikace pomocí zvýšení oprávnění nebo nasazení důvěryhodných aplikací naleznete v tématu Zabezpečení aplikací ClickOnce.

Poznámka

Pokud organizace nepoužívá nasazení důvěryhodných aplikací a vypnula zvýšení úrovně oprávnění, potvrzující oprávnění se nezdaří.

Poté, co aplikace obsahuje tato oprávnění, má přístup k datovému adresáři pomocí volání metod třídy v rámci System.IO. Můžete získat cestu k datému adresáři v rámci modelu Windows Forms aplikace ClickOnce pomocí aplikace DataDirectory vlastnosti definované v CurrentDeployment vlastnosti ApplicationDeployment. Toto je nejpohodlnější způsob a doporučený postup přístupu k vaším datům. Následující příklad kódu ukazuje postup pro textový soubor s názvem CSV.txt, který jste zahrnuli ve vašem nasazení jako datový soubor.

If (ApplicationDeployment.IsNetworkDeployed) Then
    Dim SR As StreamReader = Nothing

    Try
        SR = New StreamReader(ApplicationDeployment.CurrentDeployment.DataDirectory & "\CSV.txt")
        MessageBox.Show(SR.ReadToEnd())
    Catch Ex As Exception
        MessageBox.Show("Could not read file.")
    Finally
        SR.Close()
    End Try
End If
if (ApplicationDeployment.IsNetworkDeployed)
{
    try
    {
        using (StreamReader sr = new StreamReader(ApplicationDeployment.CurrentDeployment.DataDirectory + @"\CSV.txt"))
        {
            MessageBox.Show(sr.ReadToEnd());
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Could not read file. Error message: " + ex.Message);
    }
}

Další informace o označení souborů v nasazení jako datové soubory naleznete v tématu Postupy: Zahrnutí datového souboru v aplikaci ClickOnce.

Můžete také získat cestu k datovému adresáři pomocí příslušných proměnných třídy Application jako například LocalUserAppDataPath.

Manipulace s jinými typy souborů může vyžadovat další oprávnění. Například pokud chcete použít soubor databáze (.mdb) aplikace Access, aplikace musí uplatnit úplný vztah důvěryhodnosti pro použití příslušných tříd System.Data.

Datový adresář a verze aplikace

Každá verze aplikace má vlastní datový adresář, který je izolován od jiných verzí. ClickOnce vytvoří tento adresář bez ohledu na to, zda jsou nějaké datové soubory součástí nasazení tak, aby aplikace měla umístění pro vytváření nových datových souborů v době běhu. Když je nainstalována nová verze aplikace, ClickOnce zkopíruje všechny existující datové soubory z datového adresáře předchozí verze do datového adresáře nové verze – Určuje, zda byly zahrnuty do původního nasazení nebo vytvořeny aplikací.

ClickOnce nahradí starší verzi souboru novější verzí serveru, pokud datový soubor obsahuje ve starší verzi rozdílnou hodnotu hash než v nové verzi. Navíc pokud dřívější verze aplikace vytvořila nový soubor, který má stejný název jako soubor obsažený v nové verzi nasazení, ClickOnce přepíše soubor staré verze novým souborem. V obou případech budou staré soubory zahrnuty v podadresáři uvnitř datového adresář s názvem .pre, aby aplikace měla stále přístup k původním datům pro účely migrace.

Pokud potřebujete citlivější přenesení dat, můžete použít rozhraní API nasazení ClickOnce k provedení vlastního přenesení z původního datového adresáře do nového datového adresáře. Budete muset testovat dostupnost stažení pomocí IsFirstRun, stáhnout aktualizace pomocí Update nebo UpdateAsync a provést vlastní přenesení dat ručně po dokončení instalace aktualizace.

Izolované úložiště

Izolované úložiště poskytuje rozhraní API pro vytváření a přístupu k souborům pomocí jednoduchého rozhraní API. Aktuální umístění uložených souborů je skryto jak vývojáři tak i uživateli.

Izolované úložiště pracuje ve všech verzích .NET Framework. Izolované úložiště funguje také v částečně důvěryhodných aplikacích bez nutnosti udělení dalších oprávnění. Izolované úložiště byste měli použít v případě, že musí být aplikace spuštěna v částečném vztahu důvěryhodnosti, ale musí spravovat data specifická pro aplikaci.

Další informace naleznete v tématu Izolované úložiště.

Jiné místní soubory

Pokud vaše aplikace musí ukládat nebo pracovat se soubory koncového uživatele jako například zprávy, obrázky, hudbou atd, aplikace bude vyžadovat FileIOPermission pro čtení a zápis dat do místního systému souborů.

Vzdálená Data

V určitém okamžiku bude vaše aplikace pravděpodobně potřebovat načíst informace ze vzdáleného webu, jako například informace o zákazníkovi nebo obchodní informace. Tato část popisuje nejběžnější postupy pro načítání vzdálených dat.

Přístup k souborům pomocí protokolu HTTP

Můžete získat přístup k datům z webového serveru buďto pomocí WebClient nebo třídy HttpWebRequest v oboru názvů System.Net. Data mohou být buďto statické soubory nebo ASP.NET aplikace, které vracejí nezpracovaný text nebo XML data. Jsou-li vaše data ve formátu XML, nejrychlejší způsob načítání dat je pomocí třídy XmlDocument, jejichž metoda Load přebírá adresu URL jako argument. Příklad naleznete v tématu Reading an XML Document into the DOM.

Je nutné zvážit zabezpečení při přístupu aplikace ke vzdáleným datům přes protokol HTTP. Ve výchozím nastavením může být přístup vaší aplikace ClickOnce k síťovým zdrojům omezen podle toho, jak byla aplikace nasazena. Tato omezení je uplatněno pro zabránění nebezpečným programům v získání přístupu k privilegovaným vzdáleným datům nebo použití počítače uživatele k útoku na jiný počítač v síti.

V následující tabulce jsou uvedeny strategie nasazení, které můžete použít a jejich výchozí webová oprávnění.

Typ nasazení

Výchozí síťová oprávnění

Webová instalace

Může přístupovat pouze na webový server, ze kterého byla aplikace nainstalována

Instalace ze sdílené složky

Nelze získat přístup k webovým serverům

Instalaze z disku CD-ROM

Může přistupovat na webové servery

Pokud vaše aplikace ClickOnce nemůže přístoupit na webový server z důvodu omezení zabezpečení, musí aplikace vyžádat WebPermission pro web. Další informace o zvýšení oprávnění zabezpečení pro aplikace ClickOnce viz Zabezpečení aplikací ClickOnce.

Přístup k datům prostřednictvím webové služby XML

Jestliže vystavíte vaše data jako webovou službu XML, můžete k datům přistupovat pomocí webové služby XML serveru proxy. Server proxy je třída .NET Framework vytvořená pomocí Visual Studio. Operace webové služby XML – jako například načítání zákazníků, zavádění objednávek a tak dále – jsou zpřístupněny jako metody na serveru proxy. To činí webové služby jednodušší pro použití než nezpracovaný text nebo soubory XML.

Pokud vaše webová služba XML působí přes protokol HTTP, služba bude vázána stejnými omezeními zabezpečení jako třídy WebClient aHttpWebRequest.

Tuto úlohu lze provést také pomocí Visual Studio. Další informace naleznete v tématu Postupy: Přidání a odebrání webových referencí.  

Přímý přístup k databázi

Můžete použít třídy v rámci oboru názvů System.Data pro navázání přímých připojení s databázovým serverem jako například SQL Serverem ve vaší síti, ale musíte zohlednit problémy se zabezpečením. Na rozdíl od požadavků protokolu HTTP, ve výchozím nastavení jsou požadavky na připojení k databázi vždy zakázány; taková oprávnění budete mít ve výchozím nastavení pouze při instalaci vaší aplikace ClickOnce z disku CD-ROM. To dává úplný vztah důvěryhodnosti vaší aplikaci. Chcete-li povolit přístup k určité databázi serveru SQL, aplikace musí k němu požádat o SqlClientPermission; chcete-li povolit přístup k jiné databázi než SQL serveru, musí požádat OleDbPermission.

Ve většině případů nebudete mít přímý přístup k databázi, ale budete k ní místo toho přistupovat prostřednictvím rozhraní webového serveru napsaného v ASP.NET nebo webové služby XML. Přístup k databázi tímto způsobem je často nejlepší metodou pokud je vaše aplikace ClickOnce zavedena z webového serveru. Můžete získat přístup k serveru v částečném vztahu důvěryhodnosti bez zvyšování oprávnění aplikace.

Viz také

Úkoly

Postupy: Zahrnutí datového souboru v aplikaci ClickOnce