<Elemento socket> (impostazioni di rete)

Specifica se le operazioni socket utilizzano porte di completamento.

<Configurazione>
  <system.net>
    <Impostazioni>
      <Socket>

Sintassi

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

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
alwaysUseCompletionPortsForAccept Indica se il socket deve usare sempre le porte di completamento per le chiamate al metodo Accept. Il valore predefinito è false.
alwaysUseCompletionPortsForConnect Indica se il socket deve usare sempre le porte di completamento per le chiamate al metodo Connect. Il valore predefinito è false.
ipProtectionLevel Specifica l'impostazione predefinita System.Net.Sockets.IPProtectionLevel da utilizzare per un socket. Il valore predefinito dipende dalla versione di Windows.

Elementi figlio

Nessuno.

Elementi padre

elemento Descrizione
impostazioni Configura le opzioni di rete di base per lo spazio dei nomi System.Net.

Commenti

Gli attributi alwaysUseCompletionPortsForAccept e alwaysUseCompletionPortsForConnect vengono utilizzati per specificare il comportamento predefinito riguardante l'utilizzo di porte di completamento da parte delle classi nello spazio dei nomi System.Net.Sockets. Le porte di completamento sono consigliate per le applicazioni server ad alte prestazioni.

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

Può AlwaysUseCompletionPortsForAccept essere usato per ottenere il valore corrente dell'attributo alwaysUseCompletionPortsForAccept dai file di configurazione applicabili. Può AlwaysUseCompletionPortsForConnect essere usato per ottenere il valore corrente dell'attributo alwaysUseCompletionPortsForConnect dai file di configurazione applicabili.

L'attributo ipProtectionLevel specifica l'impostazione predefinita System.Net.Sockets.IPProtectionLevel da usare per un socket. La IPProtectionLevel proprietà abilita la configurazione di una restrizione per un socket IPv6 a un ambito specificato, ad esempio gli indirizzi con lo stesso prefisso locale o locale del sito. 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 estende o restringe l'ambito di un socket di ascolto, consentendo l'accesso senza restrizioni da utenti pubblici e privati quando appropriato o limitando l'accesso solo allo stesso sito, come richiesto.

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

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

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

Questa impostazione di configurazione non influisce sulle connessioni TCP già stabilite (il traffico non è limitato in entrambe le direzioni) e non influisce sull'invio di pacchetti UDP da parte di un'applicazione.

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

Valore dell'attributo 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.
Con restrizioni 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.
Senza restrizioni 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 specificata 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 IPProtectionLevel proprietà può essere utilizzata per ottenere il valore corrente dell'attributo ipProtectionLevel dai file di configurazione applicabili.

File di configurazione

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

Esempio

Nell'esempio seguente viene illustrato come specificare che devono essere usate le porte di completamento e che il valore predefinito deve essere illimitato System.Net.Sockets.IPProtectionLevel .

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

Vedi anche