Udostępnij za pośrednictwem


FileIOPermissionAttribute Klasa

Definicja

Przestroga

Code Access Security is not supported or honored by the runtime.

Umożliwia stosowanie akcji zabezpieczeń FileIOPermission do kodu przy użyciu zabezpieczeń deklaratywnych. Tej klasy nie można dziedziczyć.

public ref class FileIOPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
type FileIOPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
type FileIOPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
Public NotInheritable Class FileIOPermissionAttribute
Inherits CodeAccessSecurityAttribute
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak zażądać FileIOPermission przy użyciu klasy FileIOPermissionAttribute, wskazując jedyne uprawnienie, które ma zostać przyznane kodowi.

[FileIOPermissionAttribute(SecurityAction::PermitOnly,ViewAndModify="C:\\example\\sample.txt")]
[FileIOPermissionAttribute(SecurityAction.PermitOnly, ViewAndModify = "C:\\example\\sample.txt")]
<FileIOPermissionAttribute(SecurityAction.PermitOnly, _
ViewAndModify:="C:\example\sample.txt")> Public Class SampleClass

W poniższym przykładzie pokazano, jak zażądać, aby kod wywołujący miał nieograniczony FileIOPermission. Zazwyczaj żądania są wymagane w bibliotekach zarządzanych (DLL), aby chronić metody lub klasy przed potencjalnie szkodliwym kodem.

[FileIOPermissionAttribute(SecurityAction::Demand,Unrestricted=true)]
[FileIOPermissionAttribute(SecurityAction.Demand, Unrestricted=true)]
<FileIOPermissionAttribute(SecurityAction.Demand, _
 Unrestricted := True)> Public Class SampleClass

Uwagi

Ostrożność

Zabezpieczenia dostępu kodu (CAS) zostały wycofane we wszystkich wersjach programu .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

Pliki i katalogi są określane przy użyciu ścieżek bezwzględnych. Podczas uzyskiwania dostępu do plików jest przeprowadzane sprawdzanie zabezpieczeń podczas tworzenia lub otwierania pliku. Sprawdzanie zabezpieczeń nie jest wykonywane ponownie, chyba że plik zostanie zamknięty i ponownie otwarty. Sprawdzanie uprawnień po pierwszym dostępie do pliku minimalizuje wpływ kontroli zabezpieczeń na wydajność aplikacji, ponieważ otwieranie pliku odbywa się tylko raz, podczas gdy odczyt i zapis mogą wystąpić wiele razy.

Zakres dozwolonej deklaracji zależy od używanej SecurityAction.

Informacje o zabezpieczeniach zadeklarowane przez atrybut zabezpieczeń są przechowywane w metadanych obiektu docelowego atrybutu i są dostępne przez system w czasie wykonywania. Atrybuty zabezpieczeń są używane tylko w przypadku zabezpieczeń deklaratywnych. W przypadku zabezpieczeń imperatywnych użyj odpowiedniej klasy uprawnień.

Ostrożność

Unrestricted FileIOPermission udziela uprawnień do wszystkich ścieżek w systemie plików, w tym wielu nazw ścieżek, których można użyć do uzyskania dostępu do pojedynczego pliku. Aby Deny dostęp do pliku, należy Deny wszystkich możliwych ścieżek do pliku. Jeśli na przykład \\server\share jest mapowany na dysk sieciowy X, aby Deny dostęp do \\server\share\file, musisz Deny \\server\share\file, X:\file i inną ścieżkę, której można użyć, aby uzyskać dostęp do pliku.

Konstruktory

FileIOPermissionAttribute(SecurityAction)
Przestarzałe.

Inicjuje nowe wystąpienie klasy FileIOPermissionAttribute z określonym SecurityAction.

Właściwości

Action
Przestarzałe.

Pobiera lub ustawia akcję zabezpieczeń.

(Odziedziczone po SecurityAttribute)
All
Przestarzałe.
Przestarzałe.

Pobiera lub ustawia pełny dostęp dla pliku lub katalogu określonego przez wartość ciągu.

AllFiles
Przestarzałe.

Pobiera lub ustawia dozwolony dostęp do wszystkich plików.

AllLocalFiles
Przestarzałe.

Pobiera lub ustawia dozwolony dostęp do wszystkich plików lokalnych.

Append
Przestarzałe.

Pobiera lub ustawia dołączanie dostępu do pliku lub katalogu określonego przez wartość ciągu.

ChangeAccessControl
Przestarzałe.

Pobiera lub ustawia plik lub katalog, w którym można zmienić informacje kontroli dostępu.

PathDiscovery
Przestarzałe.

Pobiera lub ustawia plik lub katalog, do którego ma być przydzielane odnajdywanie ścieżek.

Read
Przestarzałe.

Pobiera lub ustawia dostęp do odczytu dla pliku lub katalogu określonego przez wartość ciągu.

TypeId
Przestarzałe.

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)
Unrestricted
Przestarzałe.

Pobiera lub ustawia wartość wskazującą, czy jest zadeklarowane pełne (nieograniczone) uprawnienie do zasobu chronionego przez atrybut.

(Odziedziczone po SecurityAttribute)
ViewAccessControl
Przestarzałe.

Pobiera lub ustawia plik lub katalog, w którym można wyświetlić informacje kontroli dostępu.

ViewAndModify
Przestarzałe.

Pobiera lub ustawia plik lub katalog, w którym można wyświetlać i modyfikować dane plików.

Write
Przestarzałe.

Pobiera lub ustawia dostęp do zapisu dla pliku lub katalogu określonego przez wartość ciągu.

Metody

CreatePermission()
Przestarzałe.

Tworzy i zwraca nowy FileIOPermission.

Equals(Object)
Przestarzałe.

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()
Przestarzałe.

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()
Przestarzałe.

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()
Przestarzałe.

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)
Przestarzałe.

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)
Przestarzałe.

Mapuje zestaw nazw na odpowiedni zestaw identyfikatorów wysyłki.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)
Przestarzałe.

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)
Przestarzałe.

Pobiera liczbę interfejsów informacyjnych typu zapewnianych przez obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)
Przestarzałe.

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też