次の方法で共有


SocketPermission.AddPermission メソッド

トランスポート アドレスのアクセス許可のセットにアクセス許可を追加します。

Public Sub AddPermission( _
   ByVal access As NetworkAccess, _   ByVal transport As TransportType, _   ByVal hostName As String, _   ByVal portNumber As Integer _)
[C#]
public void AddPermission(NetworkAccessaccess,TransportTypetransport,stringhostName,intportNumber);
[C++]
public: void AddPermission(NetworkAccessaccess,TransportTypetransport,String* hostName,intportNumber);
[JScript]
public function AddPermission(
   access : NetworkAccess,transport : TransportType,hostName : String,portNumber : int);

パラメータ

  • access
    NetworkAccess 値の 1 つ。
  • transport
    TransportType 値の 1 つ。
  • hostName
    トランスポート アドレスのホスト名。
  • portNumber
    トランスポート アドレスのポート番号。

解説

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

使用例

[Visual Basic, C#, C++] AddPermission メソッドを使用して、指定したホストに接続許可を追加する例を次に示します。

 

        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()

[C#] 
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();

[C++] 
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(S"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(S"URI", S"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(S"URI", S"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(S"\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 = 
   new SocketPermission(NetworkAccess::Connect,
   TransportType::All,
   S"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,
   S"192.168.144.239",
   SocketPermission::AllPorts);

Console::WriteLine(S"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(S"Displays the result of Intersect method :\n ");
Console::WriteLine(socketPermission1);

// Demand that the calling method have the requsite socket permission.
socketPermission1->Demand();

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

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