千家信息网

C#怎么通过权限类和权限属性来修改安全权限

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容主要讲解"C#怎么通过权限类和权限属性来修改安全权限",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#怎么通过权限类和权限属性来修改安全权限"吧!
千家信息网最后更新 2024年09月22日C#怎么通过权限类和权限属性来修改安全权限

本篇内容主要讲解"C#怎么通过权限类和权限属性来修改安全权限",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#怎么通过权限类和权限属性来修改安全权限"吧!

using System;using System.Security;using System.Security.Permissions;using System.Runtime.InteropServices;class NativeMethods{    [DllImport("msvcrt.dll")]    public static extern int puts(string str);    [DllImport("msvcrt.dll")]    internal static extern int _flushall();}class MainClass{    private static void CallUnmanagedCodeWithoutPermission()    {        SecurityPermission perm =            new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);        perm.Deny();        try        {            Console.WriteLine("Attempting to call unmanaged code without permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code without permission. Whoops!");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code.");        }    }    private static void CallUnmanagedCodeWithPermission()    {        SecurityPermission perm =            new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);        perm.Assert();        try        {            Console.WriteLine("Attempting to call unmanaged code with permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code with permission.");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code. Whoops!");        }    }    public static void Main()     {        SecurityPermission perm = new             SecurityPermission(SecurityPermissionFlag.UnmanagedCode);        perm.Assert();        CallUnmanagedCodeWithoutPermission();        perm.Deny();        CallUnmanagedCodeWithPermission();    }}using System;using System.Security;using System.Security.Permissions;using System.Runtime.InteropServices;class NativeMethods{    [DllImport("msvcrt.dll")]    public static extern int puts(string str);    [DllImport("msvcrt.dll")]    internal static extern int _flushall();}class MainClass{    [SecurityPermission(SecurityAction.Deny, Flags =        SecurityPermissionFlag.UnmanagedCode)]    private static void CallUnmanagedCodeWithoutPermission()    {        try        {            Console.WriteLine("Attempting to call unmanaged code without permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code without permission. Whoops!");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code.");        }    }    [SecurityPermission(SecurityAction.Assert, Flags =        SecurityPermissionFlag.UnmanagedCode)]    private static void CallUnmanagedCodeWithPermission()    {        try        {            Console.WriteLine("Attempting to call unmanaged code with permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code with permission.");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code. Whoops!");        }    }    public static void Main()     {        SecurityPermission perm = new            SecurityPermission(SecurityPermissionFlag.UnmanagedCode);        perm.Assert();        CallUnmanagedCodeWithoutPermission();        perm.Deny();        CallUnmanagedCodeWithPermission();    }}using System;using System.Security;using System.Security.Permissions;using System.Runtime.InteropServices;class NativeMethods{    [SuppressUnmanagedCodeSecurityAttribute()]    [DllImport("msvcrt.dll")]    internal static extern int puts(string str);    [SuppressUnmanagedCodeSecurityAttribute()]    [DllImport("msvcrt.dll")]    internal static extern int _flushall();}class MainClass{    [SecurityPermission(SecurityAction.Deny, Flags =        SecurityPermissionFlag.UnmanagedCode)]    private static void CallUnmanagedCodeWithoutPermission()    {        try        {            UIPermission uiPermission =                new UIPermission(PermissionState.Unrestricted);            uiPermission.Demand();            Console.WriteLine("Attempting to call unmanaged code without UnmanagedCode permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code without UnmanagedCode permission.");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code.");        }    }    [SecurityPermission(SecurityAction.Assert, Flags =        SecurityPermissionFlag.UnmanagedCode)]    private static void CallUnmanagedCodeWithPermission()    {        try        {            Console.WriteLine("Attempting to call unmanaged code with permission.");            NativeMethods.puts("Hello World!");            NativeMethods._flushall();            Console.WriteLine("Called unmanaged code with permission.");        }        catch (SecurityException)        {            Console.WriteLine("Caught Security Exception attempting to call unmanaged code. Whoops!");        }    }    public static void Main()     {        SecurityPermission perm = new            SecurityPermission(SecurityPermissionFlag.UnmanagedCode);       perm.Assert();       CallUnmanagedCodeWithoutPermission();       perm.Deny();       CallUnmanagedCodeWithPermission();    }}

到此,相信大家对"C#怎么通过权限类和权限属性来修改安全权限"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0