Rozwiązywanie problemów z wyjątkami związanymi z zabezpieczeniami dostępu kodu
Uprawnienia kontroli i nie jest dozwolone kodu.W momencie aplikacja wykonuje jest podany zestaw uprawnień w czasie wykonywania.Jeżeli ma wystarczające uprawnienia, działa prawidłowo; w przeciwnym razie wystąpi wyjątek zabezpieczeń.
Uprawnienia, biorąc pod uwagę swój kod zależą od lokalizacji, z której aplikacja została uruchomiona (na przykład Internet, intranet lub komputera lokalnego) i ustawienia zabezpieczeń na komputerze, na którym uruchomiona jest aplikacja.Ponieważ te ustawienia mogą się różnić od komputera, nie zawsze przewidywania, czy kod otrzyma wystarczających uprawnień.
Żądanie uprawnienia zapewnia, że kod będzie wykonywany, jeśli pozwala na to zasady zabezpieczeń na komputerze lokalnym.Jeśli nie żądać, aby niezbędne uprawnienia, można uruchomić ryzyka nie wykonywanie kodu.Aby uzyskać więcej informacji dotyczących uprawnień dostępu do kodu i żądając, zobacz Uprawnienia dostępu kodu lub Requesting Permissions.Aby uzyskać więcej informacji na Try...Catch Zobacz bloki, Try...Catch...Finally — Instrukcja (Visual Basic).
ClickOnceaplikacje mogą żądać dodatkowych uprawnień, jeśli to konieczne, za pomocą strony zabezpieczeń w projektanta aplikacji.Aby uzyskać więcej informacji, zobacz Porady: ustawienie uprawnień niestandardowych dla aplikacji ClickOnce.
Możliwe przyczyny wyjątki zabezpieczenia kodu dostępu obejmują:
Schowek. Wklejenie ze Schowka programowo jest ograniczona funkcja kod zarządzany, ponieważ Schowka mogą zawierać poufne informacje.
Rejestru lub pliku dostępu do systemu. Dostęp do lokalnego systemu plików jest ograniczona.Jeżeli uzyskuje dostęp do pliku lub zasobu, który jest wdrożony z zestawu sieci, użyj kodu Assembly.GetExecutingAssembly.Location uzyskać ścieżki do zestawu sieci.
Dostęp do sieci. Upewnij się, że Twoje zestawu używa tego samego protokołu, z którym został załadowany na zgromadzenie.Ogólnie komunikacji sieciowej jest dozwolone tylko do adresu URL, który był źródłem zgromadzenie.
Drukowanie. Oprogramowanie uruchomione w strefie Internet można wydrukować tylko przy użyciu wspólnych okien dialogowych.Jest ograniczone do drukarki domyślnej Użyj tylko wtedy, gdy zastosowano wspólne okno dialogowe, aby zezwolić użytkownikowi na wybranie drukarki.
Serializacji. Zdolność do przebudowania obiekt z dowolnych danych jest ograniczona do kod działający z pełne zaufanie.Do serializacji XML XmlSerializer typu technicznie powinny być użytkowane przez częściowo zaufany kod.Aby uzyskać więcej informacji na XmlSerializer typu, zobacz Klasa XmlSerializer.
Odbicie. Wiele funkcji związanych z odbicie środowiska wykonawczego są ograniczone z użycia przez częściowo zaufany kod.
Badanie kodu, aby ustalić, jeśli wygeneruje SecurityException dostępu do kodu
Jeśli masz blok kodu throw potencjalnie CodeAccessSecurityException, użyj Try...Catch blok kodu do wykonania, jeżeli można go i w celu obejścia awarii, jeśli nie Zezwalaj.
Czasami może zaistnieć do projektowania aplikacji, aby dostosować jego zachowanie zależy od uprawnień, który ma udzielone przez system hosta.Na przykład można wyłączyć polecenie Drukuj w menu, jeśli aplikacja nie ma uprawnień drukowania.
Aby to sprawdzić, można utworzyć wystąpienia CodeAccessPermission-uzyskane klasy, takie jak FileIOPermission.Następnie można wykonać Demand metody na uprawnienie wewnątrz Try...Catch bloku.Jeśli wyjątek, Twój zestaw nie ma uprawnienia.
Następujący przykładowy kod sprawdza, czy posiada zgromadzenie EventLogPermission uprawnienie Wykonywanie lub tworząc EventLogPermission i wykonywanie jej Demand metody w ramach Try...Catch Zablokuj, aby ustalić, czy też nie Demand zakończyło się pomyślnie.
Try
Dim MyPermission As New EventLogPermission
MyPermission.Demand()
MsgBox(MyPermission.ToString())
Catch ex As Exception
MsgBox("Assembly lacks EventLogPermission.")
End Try
Zobacz też
Koncepcje
Podstawy zabezpieczeń dostępu kodu