Udostępnij za pośrednictwem


Uzyskiwanie dostępu do danych lokalnych i zdalnych w aplikacjach ClickOnce

Większość aplikacji zużywają lub produkcji danych.ClickOncezapewnia wiele opcji do odczytu i zapisu danych, zarówno lokalnie, jak i zdalnie.

Dane lokalne

Z ClickOnce, można ładować i przechowywać dane na komputerze lokalnym przy użyciu jednej z następujących metod:

  • ClickOnceKatalog danych

  • Izolowanych magazynów

  • Inne pliki lokalne

Katalog danych ClickOnce

Każdy ClickOnce aplikacji zainstalowanych na komputerze lokalnym jest katalogu danych, przechowywanych w folderze dokumenty i ustawienia użytkownika.Dowolny plik zawarte w ClickOnce aplikacji i oznaczony jako plik "dane" jest kopiowany do tego katalogu, gdy aplikacja jest zainstalowana.Pliki danych mogą być dowolnego typu pliku, najczęściej używany tekst, XML i plików bazy danych, takich jak pliki .mdb programu Microsoft Access.

Katalog danych jest przeznaczona dla danych zarządzanych aplikacji, co aplikacja jawnie zapamiętuje i przechowuje dane.Wszystkie statyczne nondependency nie jest oznaczony jako "data" w manifeście aplikacji przechowywane są pliki zamiast w katalogu aplikacji.Ten katalog jest, w którym znajdują się pliki wykonywalne (.exe) i zestawów aplikacji.

[!UWAGA]

Gdy ClickOnce aplikacji zostanie odinstalowany, jego dane katalogu zostaną również usunięte.Nigdy nie używaj katalogu danych do przechowywania danych na koniec user–managed, takich jak dokumenty.

Znakowanie pliki danych w dystrybucji ClickOnce

Do istniejącego pliku wewnątrz katalogu danych, musisz oznaczyć istniejącego pliku jako pliku danych w sieci ClickOnce plik manifestu aplikacji aplikacji.Aby uzyskać więcej informacji, zobacz Porady: uwzględnianie pliku danych w aplikacji ClickOnce.

Odczyt i zapis do katalogu danych

Odczyt z katalogu danych wymaga, aby Twoje ClickOnce żądanie aplikacji uprawnienia do odczytu; Podobnie zapisywanie do katalogu wymaga uprawnienia do zapisu.Aplikacja będzie automatycznie mają to uprawnienie, jeśli jest skonfigurowany do uruchamiania z pełnego zaufania.Aby uzyskać więcej informacji na temat podwyższanie uprawnień dla aplikacji przy użyciu podniesienie poziomu uprawnień lub zaufane wdrażania aplikacji, zobacz Zabezpieczanie aplikacji ClickOnce.

[!UWAGA]

Jeśli dana organizacja nie korzysta z zaufanych wdrażania aplikacji i wyłączył podniesienie poziomu uprawnień, potwierdzające uprawnienia powiedzie się.

Po aplikacja ma te uprawnienia, może uzyskać dostęp katalogu danych za pomocą wywołania metody klas w ramach System.IO.Można uzyskać ścieżki katalogu danych w Windows Forms ClickOnce aplikacji za pomocą DataDirectory właściwości zdefiniowane na CurrentDeployment właściwość ApplicationDeployment.Jest to najbardziej wygodną i zalecany sposób uzyskać dostęp do danych.Poniższy przykład kodu demonstruje, jak to zrobić dla pliku tekstowego o nazwie CSV.txt, zawierającego wdrożono jako pliku danych.

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);
    }
}

Aby uzyskać więcej informacji dotyczących oznakowania plików podczas wdrażania jako pliki danych, zobacz Porady: uwzględnianie pliku danych w aplikacji ClickOnce.

Można również uzyskać ścieżki katalogu danych przy użyciu odpowiednich zmiennych na Application klasy, takie jak LocalUserAppDataPath.

Manipulowanie innych typów plików może wymagać dodatkowych uprawnień.Na przykład, jeśli chcesz użyć pliku bazy danych Access (.mdb), aplikacja musi dochodzić pełne zaufanie Aby użyć odpowiednich System.Data klasy.

Katalog danych i wersji aplikacji

Każda wersja aplikacji ma katalogu danych, która jest izolowana od innych wersji.ClickOncetworzy ten katalog, niezależnie od tego, czy wszystkie pliki danych znajdują się w rozmieszczania, dzięki czemu aplikacja ma miejsce do tworzenia nowych plików danych w czasie wykonywania.Po zainstalowaniu nowej wersji aplikacji, ClickOnce spowoduje skopiowanie wszystkich istniejących plików danych z poprzedniej wersji danych katalogu do nowej wersji danych katalogu — czy zostały uwzględnione w oryginalnym wdrażania lub utworzone przez aplikację.

ClickOncespowoduje zastąpienie starszą wersję pliku z nowszą wersją serwera, jeżeli plik danych ma wartość mieszania różnych w starej wersji aplikacji, jak w nowej wersji.Ponadto jeśli wcześniejszej wersji aplikacji, utworzono nowy plik, który ma taką samą nazwę jak zawarte w wdrażania nowych wersji pliku ClickOnce spowoduje zastąpienie starej wersji pliku z nowego pliku.W obu przypadkach stare pliki zostaną uwzględnione w podkatalogu wewnątrz katalogu danych o nazwie plików, dzięki czemu aplikacja można nadal uzyskać dostęp do starych danych dla celów migracji.

Jeśli potrzebujesz drobniejsze średnioziarnistego migracji danych, można użyć ClickOnce API wdrażania, aby dokonać migracji niestandardowych od starego katalogu danych do nowego katalogu danych.Należy przetestować do pobrania dostępne za pomocą IsFirstRun, pobrać aktualizację za pomocą Update lub UpdateAsync, i wykonaj wszelkie niestandardowe migracji danych pracy sieci po zainstalowaniu aktualizacji jest gotowych.

Izolowanych magazynów

Izolowanych magazynów udostępnia interfejs API do tworzenia i uzyskiwania dostępu do plików przy użyciu prostego interfejsu API.Faktyczną lokalizację przechowywanych plików jest ukryta przed zarówno autora, jak i użytkownika.

Izolowane składowania działa we wszystkich wersjach .NET Framework.Izolowanych magazynów działa także w częściowo zaufanych aplikacji bez potrzeby dodatkowych uprawnień dotacji.Jeśli aplikacja musi uruchomić w częściowej relacji zaufania, ale musi przechowywać dane specyficzne dla aplikacji, należy używać izolowanych magazynów.

Aby uzyskać więcej informacji, zobacz Izolowany magazyn.

Inne pliki lokalne

Jeśli aplikacja musi pracować z lub zapisania danych użytkowników końcowych, takich jak raporty, obrazy, muzyka i tak dalej, aplikacja będzie wymagało FileIOPermission do odczytu i zapisu danych w lokalnym systemie plików.

Dane zdalne

W pewnym momencie aplikacja prawdopodobnie będzie pobierać informacje z zdalnej witryny sieci Web, takich jak informacje o kliencie danych lub rynku.W tej sekcji omówiono najczęściej stosowane techniki pobierania danych zdalnego.

Uzyskiwanie dostępu do plików przy użyciu protokołu HTTP

Uzyskać dostęp do danych z serwera sieci Web przy użyciu WebClient lub HttpWebRequest klasy w System.Net obszaru nazw.Dane mogą być albo statyczne pliki lub ASP.NET aplikacji, które zwracają surowego tekstu lub danych XML.Jeśli dane w formacie XML, to najszybszy sposób pobierania danych jest za pomocą XmlDocument klasy, których Load metoda pobiera adres URL jako argumentu.Na przykład, zobacz Reading an XML Document into the DOM.

Należy wziąć pod uwagę zabezpieczeń, gdy aplikacja uzyskuje dostęp do zdalnych danych za pośrednictwem protokołu HTTP.Domyślnie na ClickOnce aplikacji dostęp do zasobów sieciowych może być ograniczony, w zależności od tego, jak aplikacja została wdrożona.Ograniczenia te są stosowane przez złośliwe programy, uzyskanie dostępu do danych zdalnego uprzywilejowany lub korzystania z komputera użytkownika do zaatakowania innych komputerów w sieci.

Poniższa tabela zawiera listę strategie wdrażania, których może używać i ich domyślne uprawnienia sieci Web.

Typ wdrażania

Domyślne uprawnienia sieciowe

Instalacji w sieci Web

Dostęp tylko do serwera sieci Web, z którego aplikacja została zainstalowana

Zainstaluj udział pliku

Nie można uzyskać dostępu do wszystkich serwerów sieci Web

Instalowanie z dysku CD-ROM

Można uzyskać dostęp do wszystkich serwerów sieci Web

Jeśli Twój ClickOnce aplikacji nie może uzyskać dostępu do serwera sieci Web, z powodu ograniczeń zabezpieczeń, aplikacja musi dochodzić WebPermission dla tej witryny sieci Web.Aby uzyskać więcej informacji o zwiększenie uprawnień zabezpieczeń dla ClickOnce aplikacji, zobacz Zabezpieczanie aplikacji ClickOnce.

Dostęp do danych za pośrednictwem usługi XML sieci Web

Jeśli użytkownik narazić dane jako usługa XML sieci Web, możliwość dostępu do danych przy użyciu serwera proxy usługi XML sieci Web.Serwer proxy jest .NET Framework utworzyć przy użyciu klasy Visual Studio.Operacje usługi XML sieci Web — takich jak pobieranie, klienci, zamówienia umieszczanie i tak dalej — są narażone jako metody na serwerze proxy.Usługi sieci Web dzięki temu znacznie łatwiejsze niż pliki raw tekstowe lub XML.

Jeśli usługa XML sieci Web działa za pośrednictwem protokołu HTTP, usługa będzie związana te same ograniczenia zabezpieczeń jako WebClient i HttpWebRequest klasy.

To zadanie można również wykonać za pomocą Visual Studio.  

Dostęp bezpośrednio do bazy danych

Można użyć klas w ramach System.Data nazw w celu ustanowienia bezpośredniego połączenia z serwerem bazy danych, takie jak SQL Server w sieci, ale muszą uwzględniać kwestie bezpieczeństwa.W przeciwieństwie do żądań HTTP żądania połączenia bazy danych zawsze są zabronione domyślnie w częściowej relacji zaufania; użytkownik będzie miał tylko takie uprawnienie domyślnie po zainstalowaniu programu ClickOnce aplikacji z dysku CD-ROM.Daje to your pełne zaufanie aplikacji.Aby umożliwić dostęp do określonej bazy danych programu SQL Server, aplikacja musi zażądać SqlClientPermission ; Aby umożliwić dostęp do bazy danych innej niż SQL Server, musi zażądać OleDbPermission.

W większości przypadków, użytkownik nie będzie mieć dostęp bezpośrednio do bazy danych, ale będzie dostęp w zamian za pośrednictwem aplikacji serwera sieci Web napisane w ASP.NET lub usługi XML sieci Web.Dostęp do bazy danych w ten sposób jest często najlepsze metody Jeśli Twój ClickOnce aplikacja jest wdrażana z serwera sieci Web.Dostęp z serwera w częściowej relacji zaufania, bez ekspansję uprawnień użytkownika aplikacji.

Zobacz też

Zadania

Porady: uwzględnianie pliku danych w aplikacji ClickOnce