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

hostNamenull 参照 (Visual Basic では Nothing) です。

解説解説

このコンストラクタは、指定した transport使用して指定した hostNameportNumber へのアクセス制御する 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 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SocketPermission」の関連用語

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

   

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



SocketPermissionのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS