wtorek, 1 stycznia 2013

70-511 Rozdział 10 - Bezpieczeństwo

Instalując aplikację na systemie bez pełnych praw administracyjnych, niektóre operacje nie są uznawane za "bezpieczne".
Szczegółowa lista elementów nie w pełni bezpiecznych:
  • aplikacja definiująca okna
  • okno zapisu (SaveFileDialog)
  • obsługa plików
  • dostęp do rejestru systemu
  • Drag & Drop
  • serailizacja XAML (XamlWriter.Save)
  • klienci UIAutomation
  • dostęp do klasy HwndHost
  • pełne wsparcie dla rejestracji dźwięku
  • hostowanie kontrolek Windows Forms w WPF
Lista elementów nie w pełni dostępnych dla specyficznych zadań
  • dostęp do sieci
    • WCF
    • skrypty
    • DOM
  • Efekty wizualne
    • Efekty związane z bitmapami
  • Edycja
    • Pełne wsparcie dla XAML
    • schowek (tekst w formacie rtf)
W przypadku, gdy tworzymy aplikację która będzie uruchamiana w środowisku bez pełnych uprawnień administracyjnych - unikamy powyżej wymienionych operacji. Oczywiście możemy sprawdzić, czy dana operacja jest dozwolona w danym środowisku. W przypadku braku dostępu zostanie rzucony wyjątek, który przechwytujemy i odpowiednio obsługujemy dalsze wykonanie aplikacji:

Code:
            try
            {
                var fileIoPermission = new FileIOPermission(FileIOPermissionAccess.AllAccess, "c:\file.txt");
                fileIoPermission.Demand();
                //operacje na pliku
            }
            catch (SecurityException ex)
            {
                //obsługa wyjątku
            }


Zasady bezpieczeństwa możemy ustawić we właściwościach projektu na zakładce Scurity:


Jeżeli chcemy udostępnić prawa administracyjne dla aplikacji wystarczy w pliku app.manifest zmienić z:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
na:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
jeżeli potrzebujemy najwyższych uprawnień używamy poziomu highestAvailable

Brak komentarzy:

Prześlij komentarz