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

SocketPermission クラス

トランスポート アドレス上で接続を確立または受け入れるための権限を制御します。

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

<SerializableAttribute> _
Public NotInheritable Class
 SocketPermission
    Inherits CodeAccessPermission
    Implements IUnrestrictedPermission
Dim instance As SocketPermission
[SerializableAttribute] 
public sealed class SocketPermission : CodeAccessPermission,
 IUnrestrictedPermission
[SerializableAttribute] 
public ref class SocketPermission sealed :
 public CodeAccessPermission, IUnrestrictedPermission
/** @attribute SerializableAttribute() */ 
public final class SocketPermission extends
 CodeAccessPermission implements IUnrestrictedPermission
SerializableAttribute 
public final class SocketPermission extends
 CodeAccessPermission implements IUnrestrictedPermission
解説解説
使用例使用例

SocketPermission クラスを使用して、さまざまなソケット アクセス制限を設定、変更、および適用する方法を次の例に示します。

   ' Creates a SocketPermission restricting access to and from all URIs.
   Dim mySocketPermission1 As New
 SocketPermission(PermissionState.None)
   
   ' The socket to which this permission will apply will allow connections
 from www.contoso.com.
   mySocketPermission1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.contoso.com",
 11000)
   
   ' Creates a SocketPermission which will allow the target Socket to
 connect with www.southridgevideo.com.
   Dim mySocketPermission2 As New
 SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "www.southridgevideo.com",
 11002)
   
   ' Creates a SocketPermission from the union of two SocketPermissions.
   Dim mySocketPermissionUnion As SocketPermission
 = CType(mySocketPermission1.Union(mySocketPermission2), SocketPermission)
   
   ' Checks to see if the union was successfully created by using the
 IsSubsetOf method.
   If mySocketPermission1.IsSubsetOf(mySocketPermissionUnion)
 And mySocketPermission2.IsSubsetOf(mySocketPermissionUnion)
 Then
      Console.WriteLine("This union contains permissions from
 both mySocketPermission1 and mySocketPermission2")
      
      ' Prints the allowable accept URIs to the console.
      Console.WriteLine("This union accepts connections on :")
      
      Dim myEnumerator As IEnumerator = mySocketPermissionUnion.AcceptList
      While myEnumerator.MoveNext()
         Console.WriteLine(CType(myEnumerator.Current, EndpointPermission).ToString())
      End While
      
      Console.WriteLine("This union establishes connections on
 : ")
      
      ' Prints the allowable connect URIs to the console.
      Console.WriteLine("This union permits connections to :")
      
      myEnumerator = mySocketPermissionUnion.ConnectList
      While myEnumerator.MoveNext()
         Console.WriteLine(CType(myEnumerator.Current, EndpointPermission).ToString())
      End While
   End If 
   ' Creates a SocketPermission from the intersect of two SocketPermissions.
   Dim mySocketPermissionIntersect As SocketPermission
 = CType(mySocketPermission1.Intersect(mySocketPermissionUnion), SocketPermission)
   
   ' mySocketPermissionIntersect should now contain the permissions
 of mySocketPermission1.
   If mySocketPermission1.IsSubsetOf(mySocketPermissionIntersect)
 Then
      Console.WriteLine("This is expected")
   End If
   ' mySocketPermissionIntersect should not contain the permissios of
 mySocketPermission2.
   If mySocketPermission2.IsSubsetOf(mySocketPermissionIntersect)
 Then
      Console.WriteLine("This should not print")
   End If
   
   ' Creates a copy of the intersect SocketPermission.
   Dim mySocketPermissionIntersectCopy As SocketPermission
 = CType(mySocketPermissionIntersect.Copy(), SocketPermission)
   
   If mySocketPermissionIntersectCopy.Equals(mySocketPermissionIntersect)
 Then
      Console.WriteLine("Copy successfull")
   End If
   ' Converts a SocketPermission to XML format and then immediately
 converts it back to a SocketPermission.
   mySocketPermission1.FromXml(mySocketPermission1.ToXml())
   
   
   ' Checks to see if permission for this socket resource is unrestricted.
  If it is, then there is no need to
   ' demand that permissions be enforced.
   If mySocketPermissionUnion.IsUnrestricted() Then
   
   'Do nothing.  There are no restrictions.
   Else
      ' Enforces the permissions found in mySocketPermissionUnion on
 any Socket Resources used below this statement. 
      mySocketPermissionUnion.Demand()
   End If
   
   Dim myIpHostEntry As IPHostEntry = Dns.Resolve("www.contoso.com")
   Dim myLocalEndPoint As New
 IPEndPoint(myIpHostEntry.AddressList(0), 11000)
   
   Dim s As New Socket(myLocalEndPoint.Address.AddressFamily,
 SocketType.Stream, ProtocolType.Tcp)
   Try
      s.Connect(myLocalEndPoint)
   Catch e As Exception
      Console.WriteLine(("Exception Thrown: " + e.ToString()))
   End Try
   
   ' Perform all socket operations in here.
   s.Close()
End Sub 'MySocketPermission
     // Creates a SocketPermission restricting access to and from all URIs.
     SocketPermission mySocketPermission1 = new SocketPermission(PermissionState.None);

     // The socket to which this permission will apply will allow connections
 from www.contoso.com.
     mySocketPermission1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.contoso.com",
 11000);

     // Creates a SocketPermission which will allow the target Socket
 to connect with www.southridgevideo.com.
     SocketPermission mySocketPermission2 =
                                new SocketPermission(NetworkAccess.Connect,
 TransportType.Tcp, "www.southridgevideo.com", 11002);

     // Creates a SocketPermission from the union of two SocketPermissions.
     SocketPermission mySocketPermissionUnion = 
                                (SocketPermission)mySocketPermission1.Union(mySocketPermission2);

     // Checks to see if the union was successfully created by using
 the IsSubsetOf method.
     if (mySocketPermission1.IsSubsetOf(mySocketPermissionUnion)
 && 
            mySocketPermission2.IsSubsetOf(mySocketPermissionUnion)){
          Console.WriteLine("This union contains permissions from both mySocketPermission1
 and mySocketPermission2"); 

          // Prints the allowable accept URIs to the console.
          Console.WriteLine("This union accepts connections on :");

          IEnumerator myEnumerator = mySocketPermissionUnion.AcceptList;
       while (myEnumerator.MoveNext()) {
               Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
            }      

             // Prints the allowable connect URIs to the console.
          Console.WriteLine("This union permits connections to :");

          myEnumerator = mySocketPermissionUnion.ConnectList;
       while (myEnumerator.MoveNext()) {
               Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
            }      

           }


     // Creates a SocketPermission from the intersect of two SocketPermissions.
     SocketPermission mySocketPermissionIntersect = 
                               (SocketPermission)mySocketPermission1.Intersect(mySocketPermissionUnion);

     // mySocketPermissionIntersect should now contain the permissions
 of mySocketPermission1.
     if (mySocketPermission1.IsSubsetOf(mySocketPermissionIntersect)){
          Console.WriteLine("This is expected");
     }
    // mySocketPermissionIntersect should not contain the permissios
 of mySocketPermission2.
     if (mySocketPermission2.IsSubsetOf(mySocketPermissionIntersect)){
          Console.WriteLine("This should not print");
     }



// Creates a copy of the intersect SocketPermission.
     SocketPermission mySocketPermissionIntersectCopy = 
                               (SocketPermission)mySocketPermissionIntersect.Copy();

     if (mySocketPermissionIntersectCopy.Equals(mySocketPermissionIntersect)){
     Console.WriteLine("Copy successfull");
     }


     // Converts a SocketPermission to XML format and then immediately
 converts it back to a SocketPermission.
     mySocketPermission1.FromXml(mySocketPermission1.ToXml());
     

     // Checks to see if permission for this socket resource is unrestricted.
  If it is, then there is no need to
     // demand that permissions be enforced.
     if (mySocketPermissionUnion.IsUnrestricted()){
         
          //Do nothing.  There are no restrictions.

     }
     else{
         // Enforces the permissions found in mySocketPermissionUnion
 on any Socket Resources used below this statement. 
         mySocketPermissionUnion.Demand();
     }

    IPHostEntry myIpHostEntry = Dns.Resolve("www.contoso.com");
    IPEndPoint myLocalEndPoint = new IPEndPoint(myIpHostEntry.AddressList[0],
 11000);

       Socket s = new Socket(myLocalEndPoint.Address.AddressFamily
,
                                      SocketType.Stream,
                                         ProtocolType.Tcp);
       try{
            s.Connect(myLocalEndPoint);
       }
       catch (Exception e){
            Console.WriteLine("Exception Thrown: " + e.ToString());
       } 

      // Perform all socket operations in here.
      
      s.Close();
// Creates a SocketPermission restricting access to and from all URIs.
SocketPermission^ mySocketPermission1 = gcnew SocketPermission( PermissionState::None
 );

// The socket to which this permission will apply will allow connections
 from www.contoso.com.
mySocketPermission1->AddPermission( NetworkAccess::Accept, TransportType::Tcp,
  "www.contoso.com", 11000 );

// Creates a SocketPermission which will allow the target Socket to
 connect with www.southridgevideo.com.
SocketPermission^ mySocketPermission2 = gcnew SocketPermission( NetworkAccess::Connect,TransportType::Tcp,
 "www.southridgevideo.com",11002 );

// Creates a SocketPermission from the union of two SocketPermissions.
SocketPermission^ mySocketPermissionUnion =
   (SocketPermission^)( mySocketPermission1->Union( mySocketPermission2 ) );

// Checks to see if the union was successfully created by using the
 IsSubsetOf method.
if ( mySocketPermission1->IsSubsetOf( mySocketPermissionUnion
 ) &&
   mySocketPermission2->IsSubsetOf( mySocketPermissionUnion ) )
{
   Console::WriteLine(  "This union contains permissions from both mySocketPermission1
 and mySocketPermission2" );
   
   // Prints the allowable accept URIs to the console.
   Console::WriteLine(  "This union accepts connections on :" );

   IEnumerator^ myEnumerator = mySocketPermissionUnion->AcceptList;
   while ( myEnumerator->MoveNext() )
   {
      Console::WriteLine( safe_cast<EndpointPermission^>( myEnumerator->Current
 )->ToString() );
   }
   
   // Prints the allowable connect URIs to the console.
   Console::WriteLine(  "This union permits connections to :" );

   myEnumerator = mySocketPermissionUnion->ConnectList;
   while ( myEnumerator->MoveNext() )
   {
      Console::WriteLine( safe_cast<EndpointPermission^>( myEnumerator->Current
 )->ToString() );
   }
}

// Creates a SocketPermission from the intersect of two SocketPermissions.
SocketPermission^ mySocketPermissionIntersect =
   (SocketPermission^)( mySocketPermission1->Intersect( mySocketPermissionUnion
 ) );

// mySocketPermissionIntersect should now contain the permissions of
 mySocketPermission1.
if ( mySocketPermission1->IsSubsetOf( mySocketPermissionIntersect
 ) )
{
   Console::WriteLine(  "This is expected" );
}

// mySocketPermissionIntersect should not contain the permissios of
 mySocketPermission2.
if ( mySocketPermission2->IsSubsetOf( mySocketPermissionIntersect
 ) )
{
   Console::WriteLine(  "This should not print" );
}

// Creates a copy of the intersect SocketPermission.
SocketPermission^ mySocketPermissionIntersectCopy =
   (SocketPermission^)( mySocketPermissionIntersect->Copy() );
if ( mySocketPermissionIntersectCopy->Equals( mySocketPermissionIntersect
 ) )
{
   Console::WriteLine(  "Copy successfull" );
}

// Converts a SocketPermission to XML format and then immediately converts
 it back to a SocketPermission.
mySocketPermission1->FromXml( mySocketPermission1->ToXml() );

// Checks to see if permission for this socket resource is unrestricted.
  If it is, then there is no need to
// demand that permissions be enforced.
if ( mySocketPermissionUnion->IsUnrestricted() )
{
   //Do nothing.  There are no restrictions.
}
else
{
   // Enforces the permissions found in mySocketPermissionUnion on any
 Socket Resources used below this statement. 
   mySocketPermissionUnion->Demand();
}

IPHostEntry^ myIpHostEntry = Dns::Resolve(  "www.contoso.com" );
IPEndPoint^ myLocalEndPoint = gcnew IPEndPoint( myIpHostEntry->AddressList[ 0
 ], 11000 );

Socket^ s = gcnew Socket( myLocalEndPoint->Address->AddressFamily,
   SocketType::Stream,
   ProtocolType::Tcp );
try
{
   s->Connect( myLocalEndPoint );
}
catch ( Exception^ e ) 
{
   Console::Write(  "Exception Thrown: " );
   Console::WriteLine( e->ToString() );
}

// Perform all socket operations in here.
s->Close();
// Creates a SocketPermission restricting access to and from all URIs.
SocketPermission mySocketPermission1 
    = new SocketPermission(PermissionState.None);
// The socket to which this permission will apply will allow 
// connections from www.contoso.com.
mySocketPermission1.AddPermission(NetworkAccess.Accept, 
    TransportType.Tcp, "www.contoso.com", 11000);
// Creates a SocketPermission which will allow the target Socket to
 
// connect with www.southridgevideo.com.
SocketPermission mySocketPermission2 
    = new SocketPermission(NetworkAccess.Connect, 
    TransportType.Tcp, "www.southridgevideo.com", 11002);
// Creates a SocketPermission from the union of two SocketPermissions.
SocketPermission mySocketPermissionUnion 
    = (SocketPermission)mySocketPermission1.Union(mySocketPermission2);
// Checks to see if the union was successfully created by using the
 
// IsSubsetOf method.
if (mySocketPermission1.IsSubsetOf(mySocketPermissionUnion) 
    && mySocketPermission2.IsSubsetOf(mySocketPermissionUnion)) {
    Console.WriteLine("This union contains permissions from both "    
                             + "mySocketPermission1 and mySocketPermission2");
    // Prints the allowable accept URIs to the console.
    Console.WriteLine("This union accepts connections on :");

    IEnumerator myEnumerator = mySocketPermissionUnion.
        get_AcceptList();
    while (myEnumerator.MoveNext()) {
        Console.WriteLine(((EndpointPermission)myEnumerator.
            get_Current()).ToString());
    }
    // Prints the allowable connect URIs to the console.
    Console.WriteLine("This union permits connections to :");

    myEnumerator = mySocketPermissionUnion.get_ConnectList();
    while (myEnumerator.MoveNext()) {
        Console.WriteLine(((EndpointPermission)myEnumerator.
            get_Current()).ToString());
    }
}

// Creates a SocketPermission from the intersect of two 
// SocketPermissions.
SocketPermission mySocketPermissionIntersect 
    = (SocketPermission)mySocketPermission1.
    Intersect(mySocketPermissionUnion);
// mySocketPermissionIntersect should now contain the permissions of
                       // mySocketPermission1.
if (mySocketPermission1.IsSubsetOf(mySocketPermissionIntersect))
 {
    Console.WriteLine("This is expected");
}
// mySocketPermissionIntersect should not contain the permissios of
                        // mySocketPermission2.
if (mySocketPermission2.IsSubsetOf(mySocketPermissionIntersect))
 {
    Console.WriteLine("This should not print");
}

// Creates a copy of the intersect SocketPermission.
SocketPermission mySocketPermissionIntersectCopy 
    = (SocketPermission)mySocketPermissionIntersect.Copy();

if (mySocketPermissionIntersectCopy.
    Equals(mySocketPermissionIntersect)) {
    Console.WriteLine("Copy successfull");
}

// Converts a SocketPermission to XML format and then immediately 
// converts it back to a SocketPermission.
mySocketPermission1.FromXml(mySocketPermission1.ToXml());
// Checks to see if permission for this socket resource is 
// unrestricted.  If it is, then there is no need to
// demand that permissions be enforced.
if (mySocketPermissionUnion.IsUnrestricted()) {
    //Do nothing.  There are no restrictions.
}
else {
    // Enforces the permissions found in mySocketPermissionUnion on
 
    // any Socket Resources used below this statement. 
    mySocketPermissionUnion.Demand();
}

IPHostEntry myIpHostEntry = Dns.Resolve("www.contoso.com");
IPEndPoint myLocalEndPoint = new IPEndPoint(myIpHostEntry.
    get_AddressList()[0], 11000);

Socket s = new Socket(myLocalEndPoint.get_Address().
    get_AddressFamily(), SocketType.Stream, ProtocolType.Tcp);
try {
    s.Connect(myLocalEndPoint);
}
catch (System.Exception e) {
    Console.WriteLine("Exception Thrown: " + e.ToString());
}
// Perform all socket operations in here.
s.Close();
継承階層継承階層
System.Object
   System.Security.CodeAccessPermission
    System.Net.SocketPermission
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SocketPermission コンストラクタ (NetworkAccess, TransportType, String, Int32)

指定したトランスポート アドレスと指定したアクセス許可で、SocketPermission クラスの新しいインスタンスを初期化します。

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

Public Sub New ( _
    access As NetworkAccess, _
    transport As TransportType, _
    hostName As String, _
    portNumber As Integer _
)
Dim access As NetworkAccess
Dim transport As TransportType
Dim hostName As String
Dim portNumber As Integer

Dim instance As New SocketPermission(access,
 transport, hostName, portNumber)
public SocketPermission (
    NetworkAccess access,
    TransportType transport,
    string hostName,
    int portNumber
)
public:
SocketPermission (
    NetworkAccess access, 
    TransportType transport, 
    String^ hostName, 
    int portNumber
)
public SocketPermission (
    NetworkAccess access, 
    TransportType transport, 
    String hostName, 
    int portNumber
)
public function SocketPermission (
    access : NetworkAccess, 
    transport : TransportType, 
    hostName : String, 
    portNumber : int
)

パラメータ

access

NetworkAccess 値の 1 つ。

transport

TransportType 値の 1 つ。

hostName

トランスポート アドレスのホスト名。

portNumber

トランスポート アドレスのポート番号。

例外例外
例外の種類条件

ArgumentNullException

hostName が null 参照 (Visual Basic では Nothing) です。

解説解説

このコンストラクタは、指定した transport を使用して指定した hostName と portNumber へのアクセスを制御する SocketPermission を作成します。

hostName は、DNS 名、IP アドレス、または 192.168.1.* などのように指定する IP サブネットにすることができます。

portNumber は、トランスポートが定義する任意の有効なポート番号または SocketPermission.AllPorts にすることができます。

使用例使用例

NetworkAccess 列挙値、TransportType 列挙値、ホスト名、およびポート番号を使用して、SocketPermission を作成する例を次に示します。

Dim socketPermission1 As New
 SocketPermission(PermissionState.Unrestricted)

'Create a 'SocketPermission' object for two ip addresses.
Dim socketPermission2 As New
 SocketPermission(PermissionState.None)
Dim securityElement1 As SecurityElement = socketPermission2.ToXml()
''SocketPermission' object for 'Connect' permission
Dim securityElement2 As New
 SecurityElement("ConnectAccess")
'Format to specify ip address are <ip-address>#<port>#<transport-type>
'First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All'
' ports for the ip-address.
Dim securityElement3 As New
 SecurityElement("URI", "192.168.144.238#-1#3")
'Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and for 'All' ports for the ip-address.
Dim securityElement4 As New
 SecurityElement("URI", "192.168.144.240#-1#3")
securityElement2.AddChild(securityElement3)
securityElement2.AddChild(securityElement4)
securityElement1.AddChild(securityElement2)


'Obtain a 'SocketPermission' object using 'FromXml' method.
socketPermission2.FromXml(securityElement1)

Console.WriteLine(ControlChars.Cr + "Displays the result of FromXml
 method : " + ControlChars.Cr)
Console.WriteLine(socketPermission2.ToString())

'Create another 'SocketPermission' object with two ip addresses.
'First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
Dim socketPermission3 As New
 SocketPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.238",
 SocketPermission.AllPorts)

'Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
socketPermission3.AddPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.239",
 SocketPermission.AllPorts)

Console.WriteLine("Displays the result of AddPermission method
 : " + ControlChars.Cr)
Console.WriteLine(socketPermission3.ToString())

'Find the intersection between two 'SocketPermission' objects.
socketPermission1 = CType(socketPermission2.Intersect(socketPermission3), SocketPermission)

Console.WriteLine("Displays the result of Intersect method :"
 + ControlChars.Cr + " ")
Console.WriteLine(socketPermission1.ToString())
'Demand that the calling method have the requsite socket permission.
socketPermission1.Demand()
  SocketPermission socketPermission1 = new SocketPermission(PermissionState.Unrestricted);

  // Create a 'SocketPermission' object for two ip addresses.
  SocketPermission socketPermission2 = new SocketPermission(PermissionState.None);
  SecurityElement securityElement1 = socketPermission2.ToXml();
  // 'SocketPermission' object for 'Connect' permission
  SecurityElement securityElement2 = new SecurityElement("ConnectAccess");
  // Format to specify ip address are <ip-address>#<port>#<transport-type>
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and 
// for 'All'ports for the ip-address.
  SecurityElement securityElement3 = new SecurityElement("URI",
 "192.168.144.238#-1#3");
  // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and 
// for 'All' ports for the ip-address.
  SecurityElement securityElement4 = new SecurityElement("URI",
 "192.168.144.240#-1#3");
  securityElement2.AddChild(securityElement3);
  securityElement2.AddChild(securityElement4);
  securityElement1.AddChild(securityElement2);
  
 // Obtain a 'SocketPermission' object using 'FromXml' method.
  socketPermission2.FromXml(securityElement1);

  Console.WriteLine("\nDisplays the result of FromXml method : \n");
  Console.WriteLine(socketPermission2.ToString());

  // Create another 'SocketPermission' object with two ip addresses.
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
  SocketPermission socketPermission3 = 
                  new SocketPermission(NetworkAccess.Connect,
                                       TransportType.All,
                                       "192.168.144.238",
                                       SocketPermission.AllPorts);

 // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
  socketPermission3.AddPermission(NetworkAccess.Connect,
                                 TransportType.All,
                                 "192.168.144.239",
                                 SocketPermission.AllPorts);

  Console.WriteLine("Displays the result of AddPermission method : \n");
  Console.WriteLine(socketPermission3.ToString());

 // Find the intersection between two 'SocketPermission' objects.
  socketPermission1 = (SocketPermission)socketPermission2.Intersect(socketPermission3);

  Console.WriteLine("Displays the result of Intersect method :\n ");
  Console.WriteLine(socketPermission1.ToString());

  // Demand that the calling method have the requsite socket permission.
  socketPermission1.Demand();
SocketPermission^ socketPermission1 = gcnew SocketPermission( PermissionState::Unrestricted
 );

// Create a 'SocketPermission' Object* for two ip addresses.
SocketPermission^ socketPermission2 = gcnew SocketPermission( PermissionState::None
 );
SecurityElement^ securityElement1 = socketPermission2->ToXml();
// 'SocketPermission' Object* for 'Connect' permission
SecurityElement^ securityElement2 = gcnew SecurityElement( "ConnectAccess"
 );
// Format to specify ip address are <ip-address>#<port>#<transport-type>
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and
// for 'All'ports for the ip-address.
SecurityElement^ securityElement3 = gcnew SecurityElement( "URI","192.168.144.238#-1#3"
 );
// Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and
// for 'All' ports for the ip-address.
SecurityElement^ securityElement4 = gcnew SecurityElement( "URI","192.168.144.240#-1#3"
 );
securityElement2->AddChild( securityElement3 );
securityElement2->AddChild( securityElement4 );
securityElement1->AddChild( securityElement2 );

// Obtain a 'SocketPermission' Object* using 'FromXml' method.
socketPermission2->FromXml( securityElement1 );

Console::WriteLine( "\nDisplays the result of FromXml method : \n" );
Console::WriteLine( socketPermission2 );

// Create another 'SocketPermission' Object* with two ip addresses.
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
SocketPermission^ socketPermission3 =
   gcnew SocketPermission( NetworkAccess::Connect,
      TransportType::All,
      "192.168.144.238",
      SocketPermission::AllPorts );

// Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
socketPermission3->AddPermission( NetworkAccess::Connect,
   TransportType::All,
   "192.168.144.239",
   SocketPermission::AllPorts );

Console::WriteLine( "Displays the result of AddPermission method : \n"
 );
Console::WriteLine( socketPermission3 );

// Find the intersection between two 'SocketPermission' objects.
socketPermission1 = dynamic_cast<SocketPermission^>(socketPermission2->Intersect(
 socketPermission3 ));

Console::WriteLine( "Displays the result of Intersect method :\n " );
Console::WriteLine( socketPermission1 );

// Demand that the calling method have the requsite socket permission.
socketPermission1->Demand();
SocketPermission socketPermission1 = 
    new SocketPermission(PermissionState.Unrestricted);

// Create a 'SocketPermission' object for two ip addresses.
SocketPermission socketPermission2 = 
    new SocketPermission(PermissionState.None);
SecurityElement securityElement1 = socketPermission2.ToXml();

// 'SocketPermission' object for 'Connect' permission
SecurityElement securityElement2 = new SecurityElement("ConnectAccess");

// Format to specify ip address are <ip-address>#<port>#<transport-type>
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 
// transport types and for 'All'ports for the ip-address.
SecurityElement securityElement3 = 
    new SecurityElement("URI", "192.168.144.238#-1#3");

// Second 'SocketPermission' ip-address is '192.168.144.240' for 
// 'All' transport types and for 'All' ports for the ip-address.
SecurityElement securityElement4 = 
    new SecurityElement("URI", "192.168.144.240#-1#3");

securityElement2.AddChild(securityElement3);
securityElement2.AddChild(securityElement4);
securityElement1.AddChild(securityElement2);

// Obtain a 'SocketPermission' object using 'FromXml' method.
socketPermission2.FromXml(securityElement1);
Console.WriteLine("\nDisplays the result of FromXml method : \n");
Console.WriteLine(socketPermission2.ToString());

// Create another 'SocketPermission' object with two ip addresses.
// First 'SocketPermission' ip-address is '192.168.144.238' for 
// 'All' transport types and for 'All' ports for the ip-address.
SocketPermission socketPermission3 = 
    new SocketPermission(NetworkAccess.Connect, TransportType.All,
 
    "192.168.144.238", SocketPermission.AllPorts);

// Second 'SocketPermission' ip-address is '192.168.144.239' for 
// 'All' transport types and for 'All' ports for the ip-address.
socketPermission3.AddPermission(NetworkAccess.Connect,
    TransportType.All, "192.168.144.239", SocketPermission.AllPorts);
Console.WriteLine("Displays the result of AddPermission method : \n");
Console.WriteLine(socketPermission3.ToString());

// Find the intersection between two 'SocketPermission' objects.
socketPermission1 = (SocketPermission) 
    socketPermission2.Intersect(socketPermission3);
Console.WriteLine("Displays the result of Intersect method :\n ");
Console.WriteLine(socketPermission1.ToString());

// Demand that the calling method have the requsite socket permission.
socketPermission1.Demand();
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SocketPermission クラス
SocketPermission メンバ
System.Net 名前空間

SocketPermission コンストラクタ (PermissionState)

Socket への無制限のアクセスを許可するか、Socket へのアクセスを禁止する SocketPermission クラスの新しいインスタンスを初期化します。

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

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

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

パラメータ

state

PermissionState 値の 1 つ。

解説解説
使用例使用例

PermissionState 列挙値を使用して、SocketPermission を作成する例を次に示します。

Dim socketPermission1 As New
 SocketPermission(PermissionState.Unrestricted)

'Create a 'SocketPermission' object for two ip addresses.
Dim socketPermission2 As New
 SocketPermission(PermissionState.None)
Dim securityElement1 As SecurityElement = socketPermission2.ToXml()
''SocketPermission' object for 'Connect' permission
Dim securityElement2 As New
 SecurityElement("ConnectAccess")
'Format to specify ip address are <ip-address>#<port>#<transport-type>
'First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All'
' ports for the ip-address.
Dim securityElement3 As New
 SecurityElement("URI", "192.168.144.238#-1#3")
'Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and for 'All' ports for the ip-address.
Dim securityElement4 As New
 SecurityElement("URI", "192.168.144.240#-1#3")
securityElement2.AddChild(securityElement3)
securityElement2.AddChild(securityElement4)
securityElement1.AddChild(securityElement2)


'Obtain a 'SocketPermission' object using 'FromXml' method.
socketPermission2.FromXml(securityElement1)

Console.WriteLine(ControlChars.Cr + "Displays the result of FromXml
 method : " + ControlChars.Cr)
Console.WriteLine(socketPermission2.ToString())

'Create another 'SocketPermission' object with two ip addresses.
'First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
Dim socketPermission3 As New
 SocketPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.238",
 SocketPermission.AllPorts)

'Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
socketPermission3.AddPermission(NetworkAccess.Connect, TransportType.All, "192.168.144.239",
 SocketPermission.AllPorts)

Console.WriteLine("Displays the result of AddPermission method
 : " + ControlChars.Cr)
Console.WriteLine(socketPermission3.ToString())

'Find the intersection between two 'SocketPermission' objects.
socketPermission1 = CType(socketPermission2.Intersect(socketPermission3), SocketPermission)

Console.WriteLine("Displays the result of Intersect method :"
 + ControlChars.Cr + " ")
Console.WriteLine(socketPermission1.ToString())
'Demand that the calling method have the requsite socket permission.
socketPermission1.Demand()
  SocketPermission socketPermission1 = new SocketPermission(PermissionState.Unrestricted);

  // Create a 'SocketPermission' object for two ip addresses.
  SocketPermission socketPermission2 = new SocketPermission(PermissionState.None);
  SecurityElement securityElement1 = socketPermission2.ToXml();
  // 'SocketPermission' object for 'Connect' permission
  SecurityElement securityElement2 = new SecurityElement("ConnectAccess");
  // Format to specify ip address are <ip-address>#<port>#<transport-type>
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and 
// for 'All'ports for the ip-address.
  SecurityElement securityElement3 = new SecurityElement("URI",
 "192.168.144.238#-1#3");
  // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and 
// for 'All' ports for the ip-address.
  SecurityElement securityElement4 = new SecurityElement("URI",
 "192.168.144.240#-1#3");
  securityElement2.AddChild(securityElement3);
  securityElement2.AddChild(securityElement4);
  securityElement1.AddChild(securityElement2);
  
 // Obtain a 'SocketPermission' object using 'FromXml' method.
  socketPermission2.FromXml(securityElement1);

  Console.WriteLine("\nDisplays the result of FromXml method : \n");
  Console.WriteLine(socketPermission2.ToString());

  // Create another 'SocketPermission' object with two ip addresses.
  // First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
  SocketPermission socketPermission3 = 
                  new SocketPermission(NetworkAccess.Connect,
                                       TransportType.All,
                                       "192.168.144.238",
                                       SocketPermission.AllPorts);

 // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
  socketPermission3.AddPermission(NetworkAccess.Connect,
                                 TransportType.All,
                                 "192.168.144.239",
                                 SocketPermission.AllPorts);

  Console.WriteLine("Displays the result of AddPermission method : \n");
  Console.WriteLine(socketPermission3.ToString());

 // Find the intersection between two 'SocketPermission' objects.
  socketPermission1 = (SocketPermission)socketPermission2.Intersect(socketPermission3);

  Console.WriteLine("Displays the result of Intersect method :\n ");
  Console.WriteLine(socketPermission1.ToString());

  // Demand that the calling method have the requsite socket permission.
  socketPermission1.Demand();
SocketPermission^ socketPermission1 = gcnew SocketPermission( PermissionState::Unrestricted
 );

// Create a 'SocketPermission' Object* for two ip addresses.
SocketPermission^ socketPermission2 = gcnew SocketPermission( PermissionState::None
 );
SecurityElement^ securityElement1 = socketPermission2->ToXml();
// 'SocketPermission' Object* for 'Connect' permission
SecurityElement^ securityElement2 = gcnew SecurityElement( "ConnectAccess"
 );
// Format to specify ip address are <ip-address>#<port>#<transport-type>
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and
// for 'All'ports for the ip-address.
SecurityElement^ securityElement3 = gcnew SecurityElement( "URI","192.168.144.238#-1#3"
 );
// Second 'SocketPermission' ip-address is '192.168.144.240' for 'All'
 transport types and
// for 'All' ports for the ip-address.
SecurityElement^ securityElement4 = gcnew SecurityElement( "URI","192.168.144.240#-1#3"
 );
securityElement2->AddChild( securityElement3 );
securityElement2->AddChild( securityElement4 );
securityElement1->AddChild( securityElement2 );

// Obtain a 'SocketPermission' Object* using 'FromXml' method.
socketPermission2->FromXml( securityElement1 );

Console::WriteLine( "\nDisplays the result of FromXml method : \n" );
Console::WriteLine( socketPermission2 );

// Create another 'SocketPermission' Object* with two ip addresses.
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 transport types and for 'All' ports for the ip-address.
SocketPermission^ socketPermission3 =
   gcnew SocketPermission( NetworkAccess::Connect,
      TransportType::All,
      "192.168.144.238",
      SocketPermission::AllPorts );

// Second 'SocketPermission' ip-address is '192.168.144.239' for 'All'
 transport types and for 'All' ports for the ip-address.
socketPermission3->AddPermission( NetworkAccess::Connect,
   TransportType::All,
   "192.168.144.239",
   SocketPermission::AllPorts );

Console::WriteLine( "Displays the result of AddPermission method : \n"
 );
Console::WriteLine( socketPermission3 );

// Find the intersection between two 'SocketPermission' objects.
socketPermission1 = dynamic_cast<SocketPermission^>(socketPermission2->Intersect(
 socketPermission3 ));

Console::WriteLine( "Displays the result of Intersect method :\n " );
Console::WriteLine( socketPermission1 );

// Demand that the calling method have the requsite socket permission.
socketPermission1->Demand();
SocketPermission socketPermission1 = 
    new SocketPermission(PermissionState.Unrestricted);

// Create a 'SocketPermission' object for two ip addresses.
SocketPermission socketPermission2 = 
    new SocketPermission(PermissionState.None);
SecurityElement securityElement1 = socketPermission2.ToXml();

// 'SocketPermission' object for 'Connect' permission
SecurityElement securityElement2 = new SecurityElement("ConnectAccess");

// Format to specify ip address are <ip-address>#<port>#<transport-type>
// First 'SocketPermission' ip-address is '192.168.144.238' for 'All'
 
// transport types and for 'All'ports for the ip-address.
SecurityElement securityElement3 = 
    new SecurityElement("URI", "192.168.144.238#-1#3");

// Second 'SocketPermission' ip-address is '192.168.144.240' for 
// 'All' transport types and for 'All' ports for the ip-address.
SecurityElement securityElement4 = 
    new SecurityElement("URI", "192.168.144.240#-1#3");

securityElement2.AddChild(securityElement3);
securityElement2.AddChild(securityElement4);
securityElement1.AddChild(securityElement2);

// Obtain a 'SocketPermission' object using 'FromXml' method.
socketPermission2.FromXml(securityElement1);
Console.WriteLine("\nDisplays the result of FromXml method : \n");
Console.WriteLine(socketPermission2.ToString());

// Create another 'SocketPermission' object with two ip addresses.
// First 'SocketPermission' ip-address is '192.168.144.238' for 
// 'All' transport types and for 'All' ports for the ip-address.
SocketPermission socketPermission3 = 
    new SocketPermission(NetworkAccess.Connect, TransportType.All,
 
    "192.168.144.238", SocketPermission.AllPorts);

// Second 'SocketPermission' ip-address is '192.168.144.239' for 
// 'All' transport types and for 'All' ports for the ip-address.
socketPermission3.AddPermission(NetworkAccess.Connect,
    TransportType.All, "192.168.144.239", SocketPermission.AllPorts);
Console.WriteLine("Displays the result of AddPermission method : \n");
Console.WriteLine(socketPermission3.ToString());

// Find the intersection between two 'SocketPermission' objects.
socketPermission1 = (SocketPermission) 
    socketPermission2.Intersect(socketPermission3);
Console.WriteLine("Displays the result of Intersect method :\n ");
Console.WriteLine(socketPermission1.ToString());

// Demand that the calling method have the requsite socket permission.
socketPermission1.Demand();
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SocketPermission クラス
SocketPermission メンバ
System.Net 名前空間

SocketPermission コンストラクタ

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

参照参照

関連項目

SocketPermission クラス
SocketPermission メンバ
System.Net 名前空間

SocketPermission フィールド


SocketPermission プロパティ


SocketPermission メソッド


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

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AddPermission トランスポート アドレスのアクセス許可のセットにアクセス許可を追加します。
パブリック メソッド Assert  アクセス許可要求によって保護されているリソースへのアクセス許可が、スタックの上位にある呼び出し元に与えられていない場合でも、呼び出し元コードが、このメソッドを呼び出すコードを通じてリソースにアクセスできるように宣言します。Assert を使用すると、セキュリティ上の問題が発生することがあります。 ( CodeAccessPermission から継承されます。)
パブリック メソッド Copy オーバーライドされます。 SocketPermission インスタンスのコピーを作成します。
パブリック メソッド Demand  コール スタック内の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が与えられていない場合は、実行時に SecurityException を強制します。 ( CodeAccessPermission から継承されます。)
パブリック メソッド Deny  コール スタックの上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスによって指定されるリソースにアクセスできないようにします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 ( CodeAccessPermission から継承されます。)
パブリック メソッド FromXml オーバーライドされます。 XML エンコーディング用の SocketPermission インスタンスを再構築します。
パブリック メソッド GetHashCode  ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した CodeAccessPermission オブジェクトのハッシュ コードを取得します。 ( CodeAccessPermission から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド Intersect オーバーライドされます。 2 つの SocketPermission インスタンス間の論理積集合を返します。
パブリック メソッド IsSubsetOf オーバーライドされます。 現在のアクセス許可が、指定したアクセス許可のサブセットかどうかを判断します。
パブリック メソッド IsUnrestricted オブジェクトの全般的なアクセス許可状態をチェックします。
パブリック メソッド PermitOnly  コール スタックの上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスによって指定されるリソース以外のすべてのリソースにアクセスできないようにします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RevertAll  現在のフレームに対する以前のオーバーライドをすべて削除し、無効にします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド RevertAssert  現在のフレームに対する以前の Assert をすべて削除し、無効にします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド RevertDeny  現在のフレームに対する以前の Deny をすべて削除し、無効にします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド RevertPermitOnly  現在のフレームに対する以前の PermitOnly をすべて削除し、無効にします。 ( CodeAccessPermission から継承されます。)
パブリック メソッド ToString  現在のアクセス許可オブジェクトの文字列形式を作成して返します。 ( CodeAccessPermission から継承されます。)
パブリック メソッド ToXml オーバーライドされます。 SocketPermission インスタンスとその現在の状態を表す XML エンコーディングを作成します。
パブリック メソッド Union オーバーライドされます。 2 つの SocketPermission インスタンス間の論理和集合を返します。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SocketPermission クラス
System.Net 名前空間

SocketPermission メンバ

トランスポート アドレス上で接続を確立または受け入れるための権限を制御します。

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


パブリック コンストラクタパブリック コンストラクタ
パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド AllPorts すべてのポートを表す定数を定義します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド AddPermission トランスポート アドレスのアクセス許可のセットにアクセス許可を追加します。
パブリック メソッド Assert  アクセス許可要求によって保護されているリソースへのアクセス許可が、スタックの上位にある呼び出し元に与えられていない場合でも、呼び出し元コードが、このメソッドを呼び出すコードを通じてリソースにアクセスできるように宣言します。Assert を使用すると、セキュリティ上の問題が発生することがあります。 (CodeAccessPermission から継承されます。)
パブリック メソッド Copy オーバーライドされます。 SocketPermission インスタンスのコピーを作成します。
パブリック メソッド Demand  コール スタック内の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が与えられていない場合は、実行時に SecurityException を強制します。 (CodeAccessPermission から継承されます。)
パブリック メソッド Deny  コール スタックの上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスによって指定されるリソースにアクセスできないようにします。 (CodeAccessPermission から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 ( CodeAccessPermission から継承されます。)
パブリック メソッド FromXml オーバーライドされます。 XML エンコーディング用の SocketPermission インスタンスを再構築します。
パブリック メソッド GetHashCode  ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適した CodeAccessPermission オブジェクトのハッシュ コードを取得します。 (CodeAccessPermission から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド Intersect オーバーライドされます。 2 つの SocketPermission インスタンス間の論理積集合を返します。
パブリック メソッド IsSubsetOf オーバーライドされます。 現在のアクセス許可が、指定したアクセス許可のサブセットかどうかを判断します。
パブリック メソッド IsUnrestricted オブジェクトの全般的なアクセス許可状態をチェックします。
パブリック メソッド PermitOnly  コール スタックの上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスによって指定されるリソース以外のすべてのリソースにアクセスできないようにします。 (CodeAccessPermission から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RevertAll  現在のフレームに対する以前のオーバーライドをすべて削除し、無効にします。 (CodeAccessPermission から継承されます。)
パブリック メソッド RevertAssert  現在のフレームに対する以前の Assert をすべて削除し、無効にします。 (CodeAccessPermission から継承されます。)
パブリック メソッド RevertDeny  現在のフレームに対する以前の Deny をすべて削除し、無効にします。 (CodeAccessPermission から継承されます。)
パブリック メソッド RevertPermitOnly  現在のフレームに対する以前の PermitOnly をすべて削除し、無効にします。 (CodeAccessPermission から継承されます。)
パブリック メソッド ToString  現在のアクセス許可オブジェクトの文字列形式を作成して返します。 (CodeAccessPermission から継承されます。)
パブリック メソッド ToXml オーバーライドされます。 SocketPermission インスタンスとその現在の状態を表す XML エンコーディングを作成します。
パブリック メソッド Union オーバーライドされます。 2 つの SocketPermission インスタンス間の論理和集合を返します。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SocketPermission クラス
System.Net 名前空間



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「SocketPermission」の関連用語

SocketPermissionのお隣キーワード
検索ランキング

   

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



SocketPermissionのページの著作権

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

©2026 GRAS Group, Inc.RSS