PermissionSetとは? わかりやすく解説

PermissionSet クラス

複数の異なる種類のアクセス許可を格納できるコレクションを表します。

名前空間: System.Security
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class PermissionSet
    Implements ISecurityEncodable, ICollection, IEnumerable, IStackWalk,
 _
    IDeserializationCallback
Dim instance As PermissionSet
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class PermissionSet : ISecurityEncodable,
 ICollection, IEnumerable, 
    IStackWalk, IDeserializationCallback
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class PermissionSet : ISecurityEncodable,
 ICollection, IEnumerable, 
    IStackWalk, IDeserializationCallback
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class PermissionSet implements ISecurityEncodable,
 ICollection, 
    IEnumerable, IStackWalk, IDeserializationCallback
SerializableAttribute 
ComVisibleAttribute(true) 
public class PermissionSet implements ISecurityEncodable,
 ICollection, 
    IEnumerable, IStackWalk, IDeserializationCallback
解説解説
使用例使用例

PermissionSet クラスとメンバを使用するコード例を次に示します。

' This sample demonstrates the use of the PermissionSet class.
Imports System
Imports System.Reflection
Imports System.Security.Permissions
Imports System.Security
Imports System.IO
Imports System.Collections
Imports Microsoft.VisualBasic



Class [MyClass]

    Public Shared Sub PermissionSetDemo()
        Console.WriteLine("Executing PermissionSetDemo")
        Try
            ' Open a new PermissionSet.
            Dim ps1 As New
 PermissionSet(PermissionState.None)
            Console.WriteLine("Adding permission to open a file
 from a file dialog box.")
            ' Add a permission to the permission set.
            ps1.AddPermission(New FileDialogPermission(FileDialogPermissionAccess.Open))
            Console.WriteLine("Demanding permission to open a
 file.")
            ps1.Demand()
            Console.WriteLine("Demand succeeded.")
            Console.WriteLine("Adding permission to save a file
 from a file dialog box.")
            ps1.AddPermission(New FileDialogPermission(FileDialogPermissionAccess.Save))
            Console.WriteLine("Demanding permission to open and
 save a file.")
            ps1.Demand()
            Console.WriteLine("Demand succeeded.")
            Console.WriteLine("Adding permission to read environment
 variable USERNAME.")
            ps1.AddPermission(New EnvironmentPermission(EnvironmentPermissionAccess.Read,
 "USERNAME"))
            ps1.Demand()
            Console.WriteLine("Demand succeeded.")
            Console.WriteLine("Adding permission to read environment
 variable COMPUTERNAME.")
            ps1.AddPermission(New EnvironmentPermission(EnvironmentPermissionAccess.Write,
 "COMPUTERNAME"))
            ' Demand all the permissions in the set.
            Console.WriteLine("Demand all permissions.")
            ps1.Demand()
            Console.WriteLine("Demand succeeded.")
            ' Display the number of permissions in the set.
            Console.WriteLine("Number of permissions = "
 & ps1.Count)
            ' Display the value of the IsSynchronized property.
            Console.WriteLine("IsSynchronized property = "
 & ps1.IsSynchronized)
            ' Display the value of the IsReadOnly property.
            Console.WriteLine("IsReadOnly property = "
 & ps1.IsReadOnly)
            ' Display the value of the SyncRoot property.
            Console.WriteLine("SyncRoot property = "
 & CType(ps1.SyncRoot, PermissionSet).ToString())
            ' Display the result of a call to the ContainsNonCodeAccessPermissions
 method.
            ' Gets a value indicating whether the PermissionSet contains
 permissions 
            ' that are not derived from CodeAccessPermission.
            ' Returns true if the PermissionSet contains permissions
 that are not 
            ' derived from CodeAccessPermission; otherwise, false.
            Console.WriteLine("ContainsNonCodeAccessPermissions
 method returned " & ps1.ContainsNonCodeAccessPermissions())
            Console.WriteLine("Value of the permission set ToString
 = " & ControlChars.Lf & ps1.ToString())
            Dim ps2 As New
 PermissionSet(PermissionState.None)
            ' Create a second permission set and compare it to the first
 permission set.
            ps2.AddPermission(New EnvironmentPermission(EnvironmentPermissionAccess.Read,
 "USERNAME"))
            ps2.AddPermission(New EnvironmentPermission(EnvironmentPermissionAccess.Write,
 "COMPUTERNAME"))
            Console.WriteLine("Permissions in first permission
 set:")
            Dim list As IEnumerator = ps1.GetEnumerator()
            While list.MoveNext()
                Console.WriteLine(list.Current.ToString())
            End While
            Console.WriteLine("Second permission IsSubsetOf first
 permission = " & ps2.IsSubsetOf(ps1))
            ' Display the intersection of two permission sets.
            Dim ps3 As PermissionSet = ps2.Intersect(ps1)
            Console.WriteLine("The intersection of the first permission
 set and " & "the second permission set = "
 & ps3.ToString())
            ' Create a new permission set.
            Dim ps4 As New
 PermissionSet(PermissionState.None)
            ps4.AddPermission(New FileIOPermission(FileIOPermissionAccess.Read,
 "C:\Temp\Testfile.txt"))
            ps4.AddPermission(New FileIOPermission(FileIOPermissionAccess.Read
 Or FileIOPermissionAccess.Write Or FileIOPermissionAccess.Append,
 "C:\Temp\Testfile.txt"))
            ' Display the union of two permission sets.
            Dim ps5 As PermissionSet = ps3.Union(ps4)
            Console.WriteLine("The union of permission set 3 and
 permission set 4 = " & ps5.ToString())
            ' Remove FileIOPermission from the permission set.
            ps5.RemovePermission(GetType(FileIOPermission))
            Console.WriteLine("The last permission set after removing
 FileIOPermission = " & ps5.ToString())
            ' Change the permission set using SetPermission.
            ps5.SetPermission(New EnvironmentPermission(EnvironmentPermissionAccess.AllAccess,
 "USERNAME"))
            Console.WriteLine("Permission set after SetPermission
 = " & ps5.ToString())
            ' Display result of ToXml and FromXml operations.
            Dim ps6 As New
 PermissionSet(PermissionState.None)
            ps6.FromXml(ps5.ToXml())
            Console.WriteLine("Result of ToFromXml = "
 & ps6.ToString() & ControlChars.Lf)
            ' Display results of PermissionSet.GetEnumerator.
            Dim psEnumerator As IEnumerator
 = ps1.GetEnumerator()
            While psEnumerator.MoveNext()
                Console.WriteLine(psEnumerator.Current)
            End While
            ' Check for an unrestricted permission set.
            Dim ps7 As New
 PermissionSet(PermissionState.Unrestricted)
            Console.WriteLine("Permission set is unrestricted
 = " & ps7.IsUnrestricted())
            ' Create and display a copy of a permission set.
            ps7 = ps5.Copy()
            Console.WriteLine("Result of copy = "
 & ps7.ToString())
        Catch e As Exception
            Console.WriteLine(e.Message.ToString())
        End Try
    End Sub 'PermissionSetDemo

    Overloads Shared Sub
 Main(ByVal args() As String)
        PermissionSetDemo()
    End Sub 'Main
End Class '[MyClass] 
// This sample demonstrates the use of the PermissionSet class.

using System;
using System.Reflection;
using System.Security.Permissions;
using System.Security;
using System.IO;
using System.Collections;

class MyClass
{
    public static void PermissionSetDemo()
    {
        Console.WriteLine("Executing PermissionSetDemo");
        try
        {
            // Open a new PermissionSet.
            PermissionSet ps1 = new PermissionSet(PermissionState.None);
            Console.WriteLine("Adding permission to open a file from a file
 dialog box.");
            // Add a permission to the permission set.
            ps1.AddPermission(
                new FileDialogPermission(FileDialogPermissionAccess.Open));
            Console.WriteLine("Demanding permission to open a file.");
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to save a file from a file
 dialog box.");
            ps1.AddPermission(
                new FileDialogPermission(FileDialogPermissionAccess.Save));
            Console.WriteLine("Demanding permission to open and save a file.");
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to read environment variable
 USERNAME.");
            ps1.AddPermission(
                new EnvironmentPermission(EnvironmentPermissionAccess.Read,
 "USERNAME"));
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to read environment variable
 COMPUTERNAME.");
            ps1.AddPermission(
                new EnvironmentPermission(EnvironmentPermissionAccess.Write
,
                "COMPUTERNAME"));
            // Demand all the permissions in the set.
            Console.WriteLine("Demand all permissions.");
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            // Display the number of permissions in the set.
            Console.WriteLine("Number of permissions = " + ps1.Count);
            // Display the value of the IsSynchronized property.
            Console.WriteLine("IsSynchronized property = " + ps1.IsSynchronized);
            // Display the value of the IsReadOnly property.
            Console.WriteLine("IsReadOnly property = " + ps1.IsReadOnly);
            // Display the value of the SyncRoot property.
            Console.WriteLine("SyncRoot property = " + ps1.SyncRoot);
            // Display the result of a call to the ContainsNonCodeAccessPermissions
 method.
            // Gets a value indicating whether the PermissionSet contains
 permissions
            // that are not derived from CodeAccessPermission.
            // Returns true if the PermissionSet contains permissions
 that are not
            // derived from CodeAccessPermission; otherwise, false.
            Console.WriteLine("ContainsNonCodeAccessPermissions method returned
 " +
                ps1.ContainsNonCodeAccessPermissions());
            Console.WriteLine("Value of the permission set
 ToString = \n" + ps1.ToString());
            PermissionSet ps2 = new PermissionSet(PermissionState.None);
            // Create a second permission set and compare it to the
 first permission set.
            ps2.AddPermission(
                new EnvironmentPermission(EnvironmentPermissionAccess.Read,
 "USERNAME"));
            ps2.AddPermission(
                new EnvironmentPermission(EnvironmentPermissionAccess.Write
, "COMPUTERNAME"));
            IEnumerator list =  ps1.GetEnumerator();
            Console.WriteLine("Permissions in first permission
 set:");
            while (list.MoveNext())
                Console.WriteLine(list.Current.ToString());
            Console.WriteLine("Second permission IsSubsetOf first permission
 = " + ps2.IsSubsetOf(ps1));
            // Display the intersection of two permission sets.
            PermissionSet ps3 = ps2.Intersect(ps1);
            Console.WriteLine("The intersection of the first permission set
 and "
                + "the second permission set = " + ps3.ToString());
            // Create a new permission set.
            PermissionSet ps4 = new PermissionSet(PermissionState.None);
            ps4.AddPermission(
                new FileIOPermission(FileIOPermissionAccess.Read
,
                "C:\\Temp\\Testfile.txt"));
            ps4.AddPermission(
                new FileIOPermission(FileIOPermissionAccess.Read
 |
                FileIOPermissionAccess.Write | FileIOPermissionAccess.Append,
                "C:\\Temp\\Testfile.txt"));
            // Display the union of two permission sets.
            PermissionSet ps5 = ps3.Union(ps4);
            Console.WriteLine("The union of permission set
 3 and permission set 4 = "
                + ps5.ToString());
            // Remove FileIOPermission from the permission set.
            ps5.RemovePermission(typeof(FileIOPermission));
            Console.WriteLine("The last permission set after
 removing FileIOPermission = "
                + ps5.ToString());
            // Change the permission set using SetPermission.
            ps5.SetPermission(new EnvironmentPermission(EnvironmentPermissionAccess.AllAccess,
 "USERNAME"));
            Console.WriteLine("Permission set after SetPermission
 = " + ps5.ToString());
            // Display result of ToXml and FromXml operations.
            PermissionSet ps6 = new PermissionSet(PermissionState.None);
            ps6.FromXml(ps5.ToXml());
            Console.WriteLine("Result of ToFromXml = " + ps6.ToString()
 + "\n");
            // Display results of PermissionSet.GetEnumerator.
            IEnumerator psEnumerator = ps1.GetEnumerator();
            while (psEnumerator.MoveNext())
            {
                Console.WriteLine(psEnumerator.Current);
            }
            // Check for an unrestricted permission set.
            PermissionSet ps7 = new PermissionSet(PermissionState.Unrestricted);
            Console.WriteLine("Permission set is unrestricted
 = " + ps7.IsUnrestricted());
            // Create and display a copy of a permission set.
            ps7 = ps5.Copy();
            Console.WriteLine("Result of copy = " + ps7.ToString());
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message.ToString());
        }

    }


    static void Main(string[]
 args)
    {
        PermissionSetDemo();
    }

}
// This sample demonstrates the use of the PermissionSet class.
using namespace System;
using namespace System::Reflection;
using namespace System::Security::Permissions;
using namespace System::Security;
using namespace System::IO;
using namespace System::Collections;
void PermissionSetDemo()
{
   Console::WriteLine( "Executing PermissionSetDemo" );
   try
   {
      // Open a new PermissionSet.
      PermissionSet^ ps1 = gcnew PermissionSet( PermissionState::None );

      Console::WriteLine( "Adding permission to open a file from a file dialog
 box." );

      // Add a permission to the permission set.
      ps1->AddPermission( gcnew FileDialogPermission( FileDialogPermissionAccess::Open
 ) );

      Console::WriteLine( "Demanding permission to open a file." );
      ps1->Demand();
      Console::WriteLine( "Demand succeeded." );
      Console::WriteLine( "Adding permission to save a file from a file dialog
 box." );
      ps1->AddPermission( gcnew FileDialogPermission( FileDialogPermissionAccess::Save
 ) );
      Console::WriteLine( "Demanding permission to open and save a file."
 );
      ps1->Demand();
      Console::WriteLine( "Demand succeeded." );
      Console::WriteLine( "Adding permission to read environment variable USERNAME."
 );
      ps1->AddPermission( gcnew EnvironmentPermission( EnvironmentPermissionAccess::Read,"USERNAME"
 ) );
      ps1->Demand();
      Console::WriteLine( "Demand succeeded." );
      Console::WriteLine( "Adding permission to read environment variable COMPUTERNAME."
 );
      ps1->AddPermission( gcnew EnvironmentPermission( EnvironmentPermissionAccess::Write,"COMPUTERNAME"
 ) );

      // Demand all the permissions in the set.
      Console::WriteLine( "Demand all permissions." );
      ps1->Demand();

      Console::WriteLine( "Demand succeeded." );

      // Display the number of permissions in the set.
      Console::WriteLine( "Number of permissions = {0}", ps1->Count
 );

      // Display the value of the IsSynchronized property.
      Console::WriteLine( "IsSynchronized property = {0}", ps1->IsSynchronized
 );

      // Display the value of the IsReadOnly property.
      Console::WriteLine( "IsReadOnly property = {0}", ps1->IsReadOnly
 );

      // Display the value of the SyncRoot property.
      Console::WriteLine( "SyncRoot property = {0}", ps1->SyncRoot );

      // Display the result of a call to the ContainsNonCodeAccessPermissions
 method.
      // Gets a value indicating whether the PermissionSet contains
 permissions
      // that are not derived from CodeAccessPermission.
      // Returns true if the PermissionSet contains permissions that
 are not
      // derived from CodeAccessPermission; otherwise, false.
      Console::WriteLine( "ContainsNonCodeAccessPermissions method returned
 {0}", ps1->ContainsNonCodeAccessPermissions() );

      Console::WriteLine( "Value of the permission set ToString
 = \n{0}", ps1->ToString() );

      PermissionSet^ ps2 = gcnew PermissionSet( PermissionState::None );

      // Create a second permission set and compare it to the first
 permission set.
      ps2->AddPermission( gcnew EnvironmentPermission( EnvironmentPermissionAccess::Read,"USERNAME"
 ) );
      ps2->AddPermission( gcnew EnvironmentPermission( EnvironmentPermissionAccess::Write,"COMPUTERNAME"
 ) );
      IEnumerator^ list =  ps1->GetEnumerator();
      Console::WriteLine("Permissions in first permission
 set:");
            while (list->MoveNext())
                Console::WriteLine(list->Current->ToString());
      Console::WriteLine( "Second permission IsSubsetOf first permission = {0}",
 ps2->IsSubsetOf( ps1 ) );

      // Display the intersection of two permission sets.
      PermissionSet^ ps3 = ps2->Intersect( ps1 );
      Console::WriteLine( "The intersection of the first permission set
 and the second permission set = {0}", ps3 );

      // Create a new permission set.
      PermissionSet^ ps4 = gcnew PermissionSet( PermissionState::None );
      ps4->AddPermission( gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\Temp\\Testfile.txt"
 ) );
      ps4->AddPermission( gcnew FileIOPermission( static_cast<FileIOPermissionAccess>(FileIOPermissionAccess::Read
 | FileIOPermissionAccess::Write | FileIOPermissionAccess::Append),"C:\\Temp\\Testfile.txt"
 ) );

      // Display the union of two permission sets.
      PermissionSet^ ps5 = ps3->Union( ps4 );
      Console::WriteLine( "The union of permission set 3
 and permission set 4 = {0}", ps5 );

      // Remove FileIOPermission from the permission set.
      ps5->RemovePermission( FileIOPermission::typeid );
      Console::WriteLine( "The last permission set after
 removing FileIOPermission = {0}", ps5 );

      // Change the permission set using SetPermission.
      ps5->SetPermission( gcnew EnvironmentPermission( EnvironmentPermissionAccess::AllAccess,"USERNAME"
 ) );
      Console::WriteLine( "Permission set after SetPermission
 = {0}", ps5 );

      // Display result of ToXml and FromXml operations.
      PermissionSet^ ps6 = gcnew PermissionSet( PermissionState::None );
      ps6->FromXml( ps5->ToXml() );
      Console::WriteLine( "Result of ToFromXml = {0}\n", ps6 );

      // Display results of PermissionSet::GetEnumerator.
      IEnumerator^ psEnumerator = ps1->GetEnumerator();
      while ( psEnumerator->MoveNext() )
      {
         Console::WriteLine( psEnumerator->Current );
      }

      // Check for an unrestricted permission set.
      PermissionSet^ ps7 = gcnew PermissionSet( PermissionState::Unrestricted );
      Console::WriteLine( "Permission set is unrestricted
 = {0}", ps7->IsUnrestricted() );

      // Create and display a copy of a permission set.
      ps7 = ps5->Copy();
      Console::WriteLine( "Result of copy = {0}", ps7 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

int main()
{
   PermissionSetDemo();
}
// This sample demonstrates the use of the PermissionSet class.

import System.*;
import System.Reflection.*;
import System.Security.Permissions.*;
import System.Security.*;
import System.IO.*;
import System.Collections.*;

class MyClass
{
    public static void PermissionSetDemo()
    {
        Console.WriteLine("Executing PermissionSetDemo");
        try
        {
            // Open a new PermissionSet.
            PermissionSet ps1 = new PermissionSet(PermissionState.None);

            Console.WriteLine("Adding permission to open a file"
                + " from a file dialog box.");

            // Add a permission to the permission set.
            ps1.AddPermission(new FileDialogPermission(
                FileDialogPermissionAccess.Open));

            Console.WriteLine("Demanding permission to open a file.");
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to save"
                + " a file from a file dialog box.");
            ps1.AddPermission(new FileDialogPermission(
                FileDialogPermissionAccess.Save));
            Console.WriteLine("Demanding permission to open and save a file.");
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to read "
                + "environment variable USERNAME.");
            ps1.AddPermission(new EnvironmentPermission(
                EnvironmentPermissionAccess.Read, "USERNAME"));
            ps1.Demand();
            Console.WriteLine("Demand succeeded.");
            Console.WriteLine("Adding permission to read "
                + "environment variable COMPUTERNAME.");
            ps1.AddPermission(new EnvironmentPermission(
                EnvironmentPermissionAccess.Write, "COMPUTERNAME"));

            // Demand all the permissions in the set.
            Console.WriteLine("Demand all permissions.");
            ps1.Demand();

            Console.WriteLine("Demand succeeded.");

            // Display the number of permissions in the set.
            Console.WriteLine(("Number of permissions = " + ps1.get_Count()));

            // Display the value of the IsSynchronized property.
            Console.WriteLine(("IsSynchronized property = "
                + System.Convert.ToString(ps1.get_IsSynchronized())));

            // Display the value of the IsReadOnly property.
            Console.WriteLine(("IsReadOnly property = "
                + System.Convert.ToString(ps1.get_IsReadOnly())));

            // Display the value of the SyncRoot property.
            Console.WriteLine(("SyncRoot property = " + ps1.get_SyncRoot()));

            // Display the result of a call to the 
            // ContainsNonCodeAccessPermissions method.
            // Gets a value indicating whether the PermissionSet 
            // contains permissions
            // that are not derived from CodeAccessPermission.
            // Returns true if the PermissionSet contains permissions
 that are 
            // not derived from CodeAccessPermission; otherwise, false.
            Console.WriteLine(
                ("ContainsNonCodeAccessPermissions method returned "
                    + System.Convert.ToString(
                    ps1.ContainsNonCodeAccessPermissions())));

            Console.WriteLine(("Value of the permission set
 ToString = \n"
                + ps1.ToString()));

            PermissionSet ps2 = new PermissionSet(PermissionState.None);

            // Create a second permission set and compare it to the
            // first permission set.
            ps2.AddPermission(new EnvironmentPermission(
                EnvironmentPermissionAccess.Read, "USERNAME"));
            ps2.AddPermission(new EnvironmentPermission(
                EnvironmentPermissionAccess.Write, "COMPUTERNAME"));
            IEnumerator list = ps1.GetEnumerator();
            Console.WriteLine("Permissions in first permission
 set:");
            while (list.MoveNext())
                Console.WriteLine(list.get_Current().ToString());
            Console.WriteLine(
                ("Second permission IsSubsetOf first permission = "
                + System.Convert.ToString(ps2.IsSubsetOf(ps1))));

            // Display the intersection of two permission sets.
            PermissionSet ps3 = ps2.Intersect(ps1);
            Console.WriteLine(
                ("The intersection of the first permission set
 and "
                + "the second permission set = " + ps3.ToString()));

            // Create a new permission set.
            PermissionSet ps4 = new PermissionSet(PermissionState.None);
            ps4.AddPermission(new FileIOPermission(
                FileIOPermissionAccess.Read, "C:\\Temp\\Testfile.txt"));
            ps4.AddPermission(new FileIOPermission(
                FileIOPermissionAccess.Read | FileIOPermissionAccess.Write
                | FileIOPermissionAccess.Append, "C:\\Temp\\Testfile.txt"));

            // Display the union of two permission sets.
            PermissionSet ps5 = ps3.Union(ps4);
            Console.WriteLine(
                ("The union of permission set 3 and permission
 set 4 = "
                + ps5.ToString()));

            // Remove FileIOPermission from the permission set.
            ps5.RemovePermission(FileIOPermission.class.ToType());
            Console.WriteLine(
                ("The last permission set after removing
 FileIOPermission = "
                + ps5.ToString()));

            // Change the permission set using SetPermission.
            ps5.SetPermission(new EnvironmentPermission(
                EnvironmentPermissionAccess.AllAccess, "USERNAME"));
            Console.WriteLine(
                ("Permission set after SetPermission = "
                + ps5.ToString()));

            // Display result of ToXml and FromXml operations.
            PermissionSet ps6 = new PermissionSet(PermissionState.None);
            ps6.FromXml(ps5.ToXml());
            Console.WriteLine(("Result of ToFromXml = "
                + ps6.ToString() + "\n"));

            // Display results of PermissionSet.GetEnumerator.
            IEnumerator psEnumerator = ps1.GetEnumerator();
            while (psEnumerator.MoveNext())
            {
                Console.WriteLine(psEnumerator.get_Current());
            }

            // Check for an unrestricted permission set.
            PermissionSet ps7 = new PermissionSet(PermissionState.Unrestricted);
            Console.WriteLine(
                ("Permission set is unrestricted = "
                + System.Convert.ToString(ps7.IsUnrestricted())));

            // Create and display a copy of a permission set.
            ps7 = ps5.Copy();
            Console.WriteLine(("Result of copy = " + ps7.ToString()));
        }
        catch (System.Exception e)
        {
            Console.WriteLine(e.get_Message().ToString());
        }
    } //PermissionSetDemo

    public static void main(String[]
 args)
    {
        PermissionSetDemo();
    } //main
} //MyClass
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
  System.Security.PermissionSet
     System.Security.NamedPermissionSet
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

PermissionSet コンストラクタ (PermissionSet)

permSet パラメータから取得した初期値で PermissionSet クラスの新しいインスタンスを初期化します。

名前空間: System.Security
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    permSet As PermissionSet _
)
Dim permSet As PermissionSet

Dim instance As New PermissionSet(permSet)
public PermissionSet (
    PermissionSet permSet
)
public:
PermissionSet (
    PermissionSet^ permSet
)
public PermissionSet (
    PermissionSet permSet
)
public function PermissionSet (
    permSet : PermissionSet
)

パラメータ

permSet

新しい PermissionSet の値の取得元の PermissionSet。それ以外の場合は、空の PermissionSet を作成する null 参照 (Visual Basic では Nothing)。

解説解説

新しい PermissionSet は、指定した PermissionSet に格納されているアクセス許可のコピーを格納します。

メモメモ

permSet パラメータが null 参照 (Visual Basic では Nothing) でない場合、これは Copy と同じです。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

PermissionSet コンストラクタ

PermissionSet クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
PermissionSet (PermissionSet) permSet パラメータから取得した初期値で PermissionSet クラスの新しいインスタンスを初期化します。
PermissionSet (PermissionState) PermissionState を指定して、PermissionSet クラスの新しいインスタンスを初期化します。
参照参照

関連項目

PermissionSet クラス
PermissionSet メンバ
System.Security 名前空間

PermissionSet コンストラクタ (PermissionState)

PermissionState を指定して、PermissionSet クラスの新しいインスタンスを初期化します。

名前空間: System.Security
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    state As PermissionState _
)
Dim state As PermissionState

Dim instance As New PermissionSet(state)
public PermissionSet (
    PermissionState state
)
public:
PermissionSet (
    PermissionState state
)
public PermissionSet (
    PermissionState state
)
public function PermissionSet (
    state : PermissionState
)

パラメータ

state

PermissionState 値の 1 つ。

例外例外
例外の種類条件

ArgumentException

state パラメータが、有効な PermissionState ではありません。

解説解説

Unrestricted 状態では、IUnrestrictedPermission インターフェイスを実装するすべてのアクセス許可が有効ですが、None では、すべてのアクセス許可が無効です。

空の PermissionSet に対して AddPermission を使用すると、セットをより詳細に定義できます。

使用例使用例

PermissionSet コンストラクタを使用して、アクセス許可の状態が None に設定されたアクセス許可セットを作成するコード例を次に示します。このコード例は、PermissionSet クラスのトピックで取り上げているコード例の一部分です。

' Open a new PermissionSet.
Dim ps1 As New PermissionSet(PermissionState.None)
Console.WriteLine("Adding permission to open a file from a file
 dialog box.")
' Add a permission to the permission set.
ps1.AddPermission(New FileDialogPermission(FileDialogPermissionAccess.Open))
Console.WriteLine("Demanding permission to open a file.")
ps1.Demand()
Console.WriteLine("Demand succeeded.")
// Open a new PermissionSet.
PermissionSet ps1 = new PermissionSet(PermissionState.None);
Console.WriteLine("Adding permission to open a file from a file dialog box.");
// Add a permission to the permission set.
ps1.AddPermission(
    new FileDialogPermission(FileDialogPermissionAccess.Open));
Console.WriteLine("Demanding permission to open a file.");
ps1.Demand();
Console.WriteLine("Demand succeeded.");
// Open a new PermissionSet.
PermissionSet^ ps1 = gcnew PermissionSet( PermissionState::None );

Console::WriteLine( "Adding permission to open a file from a file dialog box."
 );

// Add a permission to the permission set.
ps1->AddPermission( gcnew FileDialogPermission( FileDialogPermissionAccess::Open
 ) );

Console::WriteLine( "Demanding permission to open a file." );
ps1->Demand();
Console::WriteLine( "Demand succeeded." );
// Open a new PermissionSet.
PermissionSet ps1 = new PermissionSet(PermissionState.None);

Console.WriteLine("Adding permission to open a file"
    + " from a file dialog box.");

// Add a permission to the permission set.
ps1.AddPermission(new FileDialogPermission(
    FileDialogPermissionAccess.Open));

Console.WriteLine("Demanding permission to open a file.");
ps1.Demand();
Console.WriteLine("Demand succeeded.");
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

PermissionSet プロパティ


PermissionSet メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AddPermission 指定したアクセス許可を PermissionSet に追加します。
パブリック メソッド Assert アクセス許可要求によって保護されているリソースへのアクセス許可が、スタックの上位にある呼び出し元に付与されていない場合でも、呼び出し元コードが、このメソッドを呼び出すコードを通じてリソースにアクセスできるように宣言します。Assert を使用すると、セキュリティ上の問題が発生することがあります。
パブリック メソッド ContainsNonCodeAccessPermissions PermissionSet が、CodeAccessPermission から派生していないアクセス許可を格納しているかどうかを示す値を取得します。
パブリック メソッド ConvertPermissionSet エンコード済みの PermissionSet を別の XML エンコード形式に変換します。
パブリック メソッド Copy PermissionSet のコピーを作成します。
パブリック メソッド CopyTo セットのアクセス許可オブジェクトを、Array 内の示された位置にコピーします。
パブリック メソッド Demand コール スタック内の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が与えられていない場合は、実行時に強制的に SecurityException を呼び出します。
パブリック メソッド Deny 現在の PermissionSet に格納されているアクセス許可の種類と積集合を持つアクセス許可に対して、呼び出しコードを通じて渡す Demand が失敗する原因となります。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 2 つのオブジェクトが等しいかどうかを判断します。
パブリック メソッド FromXml XML エンコーディングから、指定した状態のセキュリティ オブジェクトを再構築します。
パブリック メソッド GetEnumerator セットのアクセス許可の列挙子を返します。
パブリック メソッド GetHashCode オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PermissionSet オブジェクトのハッシュ コードを取得します。
パブリック メソッド GetPermission 指定した種類のアクセス許可オブジェクトがセット内にある場合は、そのアクセス許可オブジェクトを取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド Intersect 現在の PermissionSet と指定した PermissionSet の積集合を表すアクセス許可セットを作成して返します。
パブリック メソッド IsEmpty PermissionSet が空かどうかを示す値を取得します。
パブリック メソッド IsSubsetOf 現在の PermissionSetが、指定した PermissionSet のサブセットかどうかを判断します。
パブリック メソッド IsUnrestricted PermissionSet が Unrestricted かどうかを判断します。
パブリック メソッド PermitOnly 現在の PermissionSet のサブセットではない任意の PermissionSet に対して、呼び出しコードを通じて渡す Demand が失敗する原因となります。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RemovePermission セットから特定の種類のアクセス許可を削除します。
パブリック メソッド RevertAssert 現在のフレームに対する以前の Assert をすべて削除し、無効にします。
パブリック メソッド SetPermission アクセス許可を PermissionSet に設定して、既存の、同じ種類のアクセス許可を置換します。
パブリック メソッド ToString オーバーライドされます。 PermissionSet の文字列形式を返します。
パブリック メソッド ToXml セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。
パブリック メソッド Union 現在の PermissionSet と指定した PermissionSet の和集合を表す PermissionSet を作成します。
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.Serialization.IDeserializationCallback.OnDeserialization オブジェクト グラフ全体が逆シリアル化された時点で実行します。
参照参照

関連項目

PermissionSet クラス
System.Security 名前空間

PermissionSet メンバ

複数の異なる種類のアクセス許可を格納できるコレクションを表します。

PermissionSet データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AddPermission 指定したアクセス許可を PermissionSet に追加します。
パブリック メソッド Assert アクセス許可要求によって保護されているリソースへのアクセス許可が、スタックの上位にある呼び出し元に付与されていない場合でも、呼び出し元コードが、このメソッドを呼び出すコードを通じてリソースにアクセスできるように宣言します。Assert を使用すると、セキュリティ上の問題が発生することがあります。
パブリック メソッド ContainsNonCodeAccessPermissions PermissionSet が、CodeAccessPermission から派生していないアクセス許可を格納しているかどうかを示す値を取得します。
パブリック メソッド ConvertPermissionSet エンコード済みの PermissionSet を別の XML エンコード形式に変換します。
パブリック メソッド Copy PermissionSet のコピーを作成します。
パブリック メソッド CopyTo セットのアクセス許可オブジェクトを、Array 内の示された位置にコピーします。
パブリック メソッド Demand コール スタック内の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が与えられていない場合は、実行時に強制的に SecurityException を呼び出します。
パブリック メソッド Deny 現在の PermissionSet に格納されているアクセス許可の種類と積集合を持つアクセス許可に対して、呼び出しコードを通じて渡す Demand が失敗する原因となります。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 2 つのオブジェクトが等しいかどうかを判断します。
パブリック メソッド FromXml XML エンコーディングから、指定した状態のセキュリティ オブジェクトを再構築します。
パブリック メソッド GetEnumerator セットのアクセス許可の列挙子を返します。
パブリック メソッド GetHashCode オーバーライドされます。 ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した PermissionSet オブジェクトのハッシュ コードを取得します。
パブリック メソッド GetPermission 指定した種類のアクセス許可オブジェクトがセット内にある場合は、そのアクセス許可オブジェクトを取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド Intersect 現在の PermissionSet と指定した PermissionSet の積集合を表すアクセス許可セットを作成して返します。
パブリック メソッド IsEmpty PermissionSet が空かどうかを示す値を取得します。
パブリック メソッド IsSubsetOf 現在の PermissionSetが、指定した PermissionSet のサブセットかどうかを判断します。
パブリック メソッド IsUnrestricted PermissionSet が Unrestricted かどうかを判断します。
パブリック メソッド PermitOnly 現在の PermissionSet のサブセットではない任意の PermissionSet に対して、呼び出しコードを通じて渡す Demand が失敗する原因となります。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RemovePermission セットから特定の種類のアクセス許可を削除します。
パブリック メソッド RevertAssert 現在のフレームに対する以前の Assert をすべて削除し、無効にします。
パブリック メソッド SetPermission アクセス許可を PermissionSet に設定して、既存の、同じ種類のアクセス許可を置換します。
パブリック メソッド ToString オーバーライドされます。 PermissionSet の文字列形式を返します。
パブリック メソッド ToXml セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。
パブリック メソッド Union 現在の PermissionSet と指定した PermissionSet の和集合を表す PermissionSet を作成します。
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.Serialization.IDeserializationCallback.OnDeserialization オブジェクト グラフ全体が逆シリアル化された時点で実行します。
参照参照

関連項目

PermissionSet クラス
System.Security 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「PermissionSet」の関連用語

PermissionSetのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



PermissionSetのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS