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

SocketPermission クラス

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

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

<SerializableAttribute> _
Public NotInheritable Class
 SocketPermission
    Inherits CodeAccessPermission
    Implements IUnrestrictedPermission
[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) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



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

辞書ショートカット

すべての辞書の索引

「SocketPermission クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS