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