Condividi tramite


Elemento <socket> (Impostazioni di rete)

Specifica se le operazioni socket utilizzano porte di completamento.

<socket
  alwaysUseCompletionPortsForConnect="true|false"
  alwaysUseCompletionPortsForAccept="true|false"
  ipProtectionLevel ="EdgeRestricted|Restricted|Unrestricted|Unspecified"
/socket>

Attributi ed elementi

Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.

Attributi

Attribute

Oggetto di descrizione

alwaysUseCompletionPortsForAccept

Indica se il socket deve utilizzare sempre porte di completamento per le chiamate al metodo Accept. Il valore predefinito è false.

alwaysUseCompletionPortsForConnect

Indica se il socket deve utilizzare sempre porte di completamento per le chiamate al metodo Connect. Il valore predefinito è false.

ipProtectionLevel

Specifica l'oggetto System.Net.Sockets.IPProtectionLevel predefinito da utilizzare per un socket. Il valore predefinito dipende dalla versione di Windows.

Elementi figlio

Nessuno.

Elementi padre

Elemento

Oggetto di descrizione

<settings>

Configura opzioni di rete di base per lo spazio dei nomi System.Net.

Note

Gli attributi alwaysUseCompletionPortsForAccept e alwaysUseCompletionPortsForConnect vengono utilizzati per specificare il comportamento predefinito riguardante l'utilizzo di porte di completamento da parte delle classi in System.Net.Sockets. spazi dei nomi. Sono inoltre consigliate per le applicazioni server a elevate prestazioni.

Il valore predefinito per gli attributi alwaysUseCompletionPortsForAccept e alwaysUseCompletionPortsForConnect è false.

La proprietà AlwaysUseCompletionPortsForAccept può essere utilizzata per ottenere il valore corrente dell'attributo alwaysUseCompletionPortsForAccept dai file di configurazione applicabili. La proprietà AlwaysUseCompletionPortsForConnect può essere utilizzata per ottenere il valore corrente dell'attributo alwaysUseCompletionPortsForConnect dai file di configurazione applicabili.

L'attributo ipProtectionLevel specifica l'oggetto predefinito System.Net.Sockets.IPProtectionLevel da utilizzare per un socket. La proprietà IPProtectionLevel consente la configurazione di una restrizione per un socket IPv6 a un ambito specificato, ad esempio gli indirizzi con lo stesso prefisso link-local o site-local. Questa opzione consente alle applicazioni di applicare restrizioni di accesso ai socket IPv6. Tali restrizioni consentono a un'applicazione in esecuzione su una LAN privata di proteggersi in modo semplice e affidabile da attacchi esterni. Questa opzione allarga o restringe l'ambito di un socket in attesa, consentendo l'accesso illimitato di utenti pubblici e privati, laddove appropriato, o limitando l'accesso solo al medesimo sito, secondo le necessità.

L'impostazione dell'attributo ipProtectionLevel influisce solo sul traffico iniziale in ingresso:

  • Un server TCP in attesa delle connessioni in ingresso su un socket.

  • Un'applicazione UDP che riceve un pacchetto su un socket.

Tale impostazione di configurazione non influisce sulle connessioni TCP già stabilite (il traffico è senza restrizioni in entrambe le direzioni) e non ha effetti su un'applicazione che invia pacchetti UDP.

I valori possibili per l'impostazione dell'attributo ipProtectionLevel corrispondono ai livelli di protezione definiti specificati nell'enumerazione System.Net.Sockets.IPProtectionLevel nel modo seguente:

Valore attributo

Oggetto di descrizione

EdgeRestricted

Il livello di protezione IP è limitato dal perimetro. Questo valore verrebbe utilizzato dalle applicazioni progettate per operare in Internet. Questa impostazione non consente l'attraversamento NAT (Network Address Translation) tramite l'implementazione di Windows Teredo. Tali applicazioni possono aggirare i firewall IPv4 e pertanto le applicazioni devono essere protette contro gli attacchi provenienti da Internet diretti alla porta aperta. In Windows Server 2003 e in Windows XP, il valore predefinito per il livello di protezione IP in un socket è limitato dal perimetro.

Restricted

Il livello di protezione IP è limitato. Questo valore verrebbe utilizzato da applicazioni Intranet che non implementano scenari Internet. Queste applicazioni non sono in genere testate o protette da attacchi analoghi a quelli provenienti da Internet. Questa impostazione limiterà il traffico ricevuto solo a quello locale rispetto al collegamento.

Illimitato

Il livello di protezione IP è illimitato. Questo valore verrebbe utilizzato dalle applicazioni progettate per operare in Internet, incluse la applicazioni che usufruiscono delle funzionalità di attraversamento NAT IPv6 compilate in Windows (ad esempio, Teredo). Tali applicazioni possono aggirare i firewall IPv4 e pertanto le applicazioni devono essere protette contro gli attacchi provenienti da Internet diretti alla porta aperta. In Windows Server 2008 R2 e in Windows Vista, il valore predefinito per il livello di protezione IP in un socket è illimitato.

Non specificato

Il livello di protezione IP non è specificato. In Windows 7 e in Windows Server 2008 R2, il valore predefinito per il livello di protezione IP in un socket non è specificato.

Il valore predefinito per l'attributo ipProtectionLevel è Unspecified.

La proprietà IPProtectionLevel può essere utilizzata per ottenere il valore corrente dell'attributo ipProtectionLevel dai file di configurazione applicabili.

File di configurazione

L'elemento può essere utilizzato nel file di configurazione dell'applicazione o nel file di configurazione del computer (Machine.config).

Esempio

Nell'esempio di codice seguente viene illustrato come specificare che è necessario utilizzare le porte di completamento e che il System.Net.Sockets.IPProtectionLevel predefinito non deve avere restrizioni.

<configuration>
  <system.net>
    <settings>
      <socket
        alwaysUseCompletionPortsForAccept="true"
        alwaysUseCompletionPortsForConnect="true"
        ipProtectionLevel="Unrestricted"
       />
    </settings>
  </system.net>
</configuration>

Vedere anche

Riferimenti

Schema delle impostazioni di rete

System.Net

System.Net.Configuration.SocketElement

System.Net.Sockets

System.Net.Sockets.IPProtectionLevel

SocketOptionName.IPProtectionLevel