SocketPermission.Intersect(IPermission) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
두 SocketPermission 인스턴스의 논리 교집합을 반환합니다.
public:
override System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public override System.Security.IPermission Intersect (System.Security.IPermission target);
override this.Intersect : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Intersect (target As IPermission) As IPermission
매개 변수
- target
- IPermission
현재 인스턴스와 교집합을 구할 SocketPermission 인스턴스입니다.
반환
두 SocketPermission 인스턴스의 교집합에 해당하는 부분을 나타내는 SocketPermission 인스턴스입니다. 교집합에 해당하는 부분이 없으면 메서드가 null
을 반환합니다.
target
매개 변수가 null 참조이면 메서드는 null
을 반환합니다.
예외
target
매개 변수가 SocketPermission이 아닌 경우
DnsPermission이 메서드 호출자에 부여되지 않은 경우
예제
다음 예제에서는 메서드를 Intersect 사용하여 두 SocketPermission 인스턴스 간의 논리적 교집합을 가져옵니다.
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();
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()
설명
두 권한의 교차점은 두 권한으로 보호되는 리소스 및 작업을 보호하는 데 도움이 되는 권한입니다. 특히 두 권한을 모두 전달하는 모든 요청이 교차를 통과하게 하는 최소 권한을 나타냅니다. 이 메서드는 를 재정의 Intersect 하고 인터페이스를 지원하기 IPermission 위해 구현됩니다.
적용 대상
.NET