SocketPermission クラス
アセンブリ: 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
解説SocketPermission インスタンスは、接続を受け入れるか、Socket 接続を開始するためのアクセス許可を制御します。Socket アクセス許可は、ホスト名または IP アドレス、ポート番号、およびトランスポート プロトコルに対して設定できます。
メモ |
|---|
| ホスト名は IP アドレスに解決される必要があり、これによりスタックがブロックされることがあるため、ホスト名を使用してソケット アクセス許可が作成されないようにします。 |
使用例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.Security.CodeAccessPermission
System.Net.SocketPermission
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照SocketPermission コンストラクタ (NetworkAccess, TransportType, String, Int32)
アセンブリ: 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 )
例外
解説このコンストラクタは、指定した 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();
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照SocketPermission コンストラクタ (PermissionState)
アセンブリ: System (system.dll 内)
構文
解説SocketPermission インスタンスが PermissionState の Unrestricted 値で作成された場合、SocketPermission インスタンスはすべての要求を渡します。トランスポート アドレスのアクセス許可に AddPermission が追加されていない限り、state のその他のすべての値では、すべての要求を失敗させる SocketPermission インスタンスが作成されます。
使用例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();
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照SocketPermission コンストラクタ
オーバーロードの一覧| 名前 | 説明 |
|---|---|
| SocketPermission (PermissionState) | Socket への無制限のアクセスを許可するか、Socket へのアクセスを禁止する SocketPermission クラスの新しいインスタンスを初期化します。 |
| SocketPermission (NetworkAccess, TransportType, String, Int32) | 指定したトランスポート アドレスと指定したアクセス許可で、SocketPermission クラスの新しいインスタンスを初期化します。 |
参照SocketPermission フィールド
SocketPermission プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| AcceptList | このアクセス許可インスタンスの制約下で受け入れられるエンドポイントを識別する EndpointPermission インスタンスの一覧を取得します。 |
| ConnectList | このアクセス許可インスタンスの制約下で接続できるエンドポイントを識別する EndpointPermission インスタンスの一覧を取得します。 |
参照SocketPermission メソッド
パブリック メソッド
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
参照SocketPermission メンバ
トランスポート アドレス上で接続を確立または受け入れるための権限を制御します。
SocketPermission データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック フィールド
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| AcceptList | このアクセス許可インスタンスの制約下で受け入れられるエンドポイントを識別する EndpointPermission インスタンスの一覧を取得します。 |
| ConnectList | このアクセス許可インスタンスの制約下で接続できるエンドポイントを識別する EndpointPermission インスタンスの一覧を取得します。 |
パブリック メソッド
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参照- SocketPermissionのページへのリンク
.gif)