GacIdentityPermissionAttribute Klasa

Definicja

Przestroga

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

Umożliwia stosowanie akcji GacIdentityPermission zabezpieczeń do kodu przy użyciu zabezpieczeń deklaratywnych. Klasa ta nie może być dziedziczona.

public ref class GacIdentityPermissionAttribute 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 GacIdentityPermissionAttribute : 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.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class GacIdentityPermissionAttribute : 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 GacIdentityPermissionAttribute : 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 GacIdentityPermissionAttribute = 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.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type GacIdentityPermissionAttribute = 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 GacIdentityPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
Public NotInheritable Class GacIdentityPermissionAttribute
Inherits CodeAccessSecurityAttribute
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie pokazano użycie metody GacIdentityPermissionAttribute.

// To run this sample you must create a strong-name key named snkey.snk 
// using the Strong Name tool (sn.exe).  Both the library assembly and the 
// application assembly that calls it must be signed with that key.  
// To run successfully, the application assembly must be in the global 
// assembly cache.
// This console application can be created using the following code.

//#using <mscorlib.dll>
//#using <ClassLibrary1.dll>
//using namespace System;
//using namespace System::Security;
//using namespace System::Reflection;
//using namespace ClassLibrary1;
//[assembly: AssemblyVersion(S"1.0.555.0")]
//[assembly: AssemblyKeyFile(S"snKey.snk")];
//int main()
//{ 
//    try
//    {
//        Class1* myLib = new Class1();
//        myLib->DoNothing();
//
//        Console::WriteLine(S"Exiting the sample.");
//    }
//    catch (Exception* e)
//    {
//        Console::WriteLine(e->Message);
//    }
//}
using namespace System;
using namespace System::Security::Permissions;

namespace ClassLibrary1
{
   // Demand that the calling program be in the global assembly cache.
   [GacIdentityPermissionAttribute(SecurityAction::Demand)]
   public ref class Class1
   {
   public:
      void DoNothing()
      {
         Console::WriteLine( "Exiting the library program." );
      }
   };
}
// To run this sample you must create a strong-name key named snkey.snk 
// using the Strong Name tool (sn.exe).  Both the library assembly and the 
// application assembly that calls it must be signed with that key.  
// To run successfully, the application assembly must be in the global 
// assembly cache.
// This console application can be created using the following code.

//using System;
//using System.Security;
//using System.Reflection;
//using ClassLibrary1;
//[assembly: AssemblyVersion("1.0.555.0")]
//[assembly: AssemblyKeyFile("snKey.snk")]
//class MyClass
//{
//    static void Main(string[] args)
//    {
//        try
//        {
//            Class1 myLib = new Class1();
//            myLib.DoNothing();
//
//            Console.WriteLine("Exiting the sample.");
//        }
//        catch (Exception e)
//        {
//        Console.WriteLine(e.Message);
//        }
//    }
//}
using System;
using System.Security.Permissions;

namespace ClassLibrary1
{
    // Demand that the calling program be in the global assembly cache.
    [GacIdentityPermissionAttribute(SecurityAction.Demand)]
    public class Class1
    {
        public void DoNothing()
        {
            Console.WriteLine("Exiting the library program.");
        }
    }
}
' To run this sample you must create a strong-name key named snkey.snk 
' using the Strong Name tool (sn.exe).  Both the library assembly and the 
' application assembly that calls it must be signed with that key.  
' To run successfully, the application assembly must be in the global 
' assembly cache.
' This console application can be created using the following code.

'Imports System.Security
'Imports System.Security.Policy
'Imports System.Security.Principal
'Imports System.Security.Permissions
'Imports ClassLibraryVB

'Class [MyClass]
'
'    Overloads Shared Sub Main(ByVal args() As String)
'        Try
'           Dim myLib As New Class1
'            myLib.DoNothing()
'
'            Console.WriteLine("Exiting the sample.")
'        Catch e As Exception
'            Console.WriteLine(e.Message)
'        End Try
'    End Sub
'End Class
Imports System.Security.Permissions

' Demand that the calling program be in the global assembly cache.
<GacIdentityPermissionAttribute(SecurityAction.Demand)> _
Public Class Class1
    Public Sub DoNothing()
        Console.WriteLine("Exiting the library program.")
    End Sub
End Class

Uwagi

Przestroga

Zabezpieczenia dostępu kodu (CAS) zostały uznane za przestarzałe we wszystkich wersjach .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ń.

Ta klasa służy do zapewnienia, że wywołujące są zarejestrowane w globalnej pamięci podręcznej zestawów (GAC).

Zakres dozwolonej deklaracji zależy od używanej SecurityAction wartości.

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ń, GacIdentityPermission.

Ważne

Począwszy od .NET Framework 4, uprawnienia tożsamości nie są używane.

W .NET Framework w wersji 1.0 i 1.1 wymagania dotyczące uprawnień tożsamości są skuteczne nawet wtedy, gdy zestaw wywołujący jest w pełni zaufany. Oznacza to, że mimo że zestaw wywołujący ma pełne zaufanie, żądanie uprawnienia tożsamości kończy się niepowodzeniem, jeśli zestaw nie spełnia wymagań kryteriów. W .NET Framework w wersji 2.0 żądania uprawnień tożsamości są nieskuteczne, jeśli zestaw wywołujący ma pełne zaufanie. Zapewnia to spójność wszystkich uprawnień, eliminując traktowanie uprawnień tożsamości jako szczególnego przypadku.

Aby uzyskać więcej informacji na temat używania atrybutów, zobacz Atrybuty.

Konstruktory

GacIdentityPermissionAttribute(SecurityAction)
Przestarzałe.

Inicjuje GacIdentityPermissionAttribute nowe wystąpienie klasy z określoną SecurityAction wartością.

Właściwości

Action
Przestarzałe.

Pobiera lub ustawia akcję zabezpieczeń.

(Odziedziczone po SecurityAttribute)
TypeId
Przestarzałe.

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

(Odziedziczone po Attribute)
Unrestricted
Przestarzałe.

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

(Odziedziczone po SecurityAttribute)

Metody

CreatePermission()
Przestarzałe.

Tworzy nowy GacIdentityPermission obiekt.

Equals(Object)
Przestarzałe.

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

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

Zwraca wartość skrótu dla tego wystąpienia.

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

Type Pobiera wartość bieżącego wystąpienia.

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

Podczas zastępowania 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 przesłonięciu 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 Objectelementu .

(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.

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

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

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

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

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

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

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy