GacIdentityPermissionAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
Code Access Security is not supported or honored by the runtime.
允许对要使用声明性安全应用到代码中的 GacIdentityPermission 执行安全操作。 此类不能被继承。
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
- 继承
- 属性
示例
以下示例演示了 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
注解
注意
代码访问安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中弃用。 如果使用与 CAS 相关的 API,最新版本的 .NET 不会遵循 CAS 注释,并会生成错误。 开发人员应寻求用于完成安全任务的替代方法。
此类用于确保调用方在 GAC) (全局程序集缓存中注册。
允许的声明的范围取决于 SecurityAction 所使用的值。
安全属性声明的安全信息存储在属性目标的元数据中,并在运行时由系统访问。 安全属性仅用于声明性安全性。 对于命令性安全性,请使用相应的权限类 GacIdentityPermission。
重要
从.NET Framework 4 开始,不使用标识权限。
在 .NET Framework版本 1.0 和 1.1 中,即使调用程序集完全受信任,对标识权限的要求也有效。 也就是说,尽管调用程序集具有完全信任,但如果程序集不符合所需的条件,则对标识权限的要求会失败。 在 .NET Framework 版本 2.0 中,如果调用程序集具有完全信任,则对标识权限的要求无效。 这可确保所有权限的一致性,避免将标识权限视为特殊情况。
有关使用特性的详细信息,请参阅 特性。
构造函数
GacIdentityPermissionAttribute(SecurityAction) |
已过时.
使用指定的 SecurityAction 值初始化 GacIdentityPermissionAttribute 类的新实例。 |
属性
Action |
已过时.
获取或设置安全性操作。 (继承自 SecurityAttribute) |
TypeId |
已过时.
在派生类中实现时,获取此 Attribute 的唯一标识符。 (继承自 Attribute) |
Unrestricted |
已过时.
获取或设置一个值,该值指示是否声明了对受该特性保护的资源有完全(无限制的)权限。 (继承自 SecurityAttribute) |
方法
CreatePermission() |
已过时.
创建一个新的 GacIdentityPermission 对象。 |
Equals(Object) |
已过时.
返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute) |
GetHashCode() |
已过时.
返回此实例的哈希代码。 (继承自 Attribute) |
GetType() |
已过时.
获取当前实例的 Type。 (继承自 Object) |
IsDefaultAttribute() |
已过时.
在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute) |
Match(Object) |
已过时.
当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute) |
MemberwiseClone() |
已过时.
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
已过时.
返回表示当前对象的字符串。 (继承自 Object) |
显式接口实现
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
已过时.
将一组名称映射为对应的一组调度标识符。 (继承自 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
已过时.
检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
已过时.
检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
已过时.
提供对某一对象公开的属性和方法的访问。 (继承自 Attribute) |