Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase SocketPermission

 

Controla los derechos para realizar o Aceptar conexiones en una dirección de transporte.

Espacio de nombres:   System.Net
Ensamblado:  System (en System.dll)


[SerializableAttribute]
public sealed class SocketPermission : CodeAccessPermission, 
	IUnrestrictedPermission

NombreDescripción
System_CAPS_pubmethodSocketPermission(NetworkAccess, TransportType, String, Int32)

Inicializa una nueva instancia de la SocketPermission clase para la dirección de transporte dada con el permiso especificado.

System_CAPS_pubmethodSocketPermission(PermissionState)

Inicializa una nueva instancia de la SocketPermission clase que permite el acceso sin restricciones a la Socket o deniega el acceso a la Socket.

NombreDescripción
System_CAPS_pubpropertyAcceptList

Obtiene una lista de EndpointPermission instancias que identifican los extremos que se pueden aceptar bajo esta instancia de permiso.

System_CAPS_pubpropertyConnectList

Obtiene una lista de EndpointPermission instancias que identifican los extremos que se pueden conectar a bajo esta instancia de permiso.

NombreDescripción
System_CAPS_pubmethodAddPermission(NetworkAccess, TransportType, String, Int32)

Agrega un permiso al conjunto de permisos para una dirección de transporte.

System_CAPS_pubmethodAssert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso. El uso de Assert puede crear problemas de seguridad.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodCopy()

Crea una copia de una instancia de SocketPermission.(Invalida CodeAccessPermission.Copy()).

System_CAPS_pubmethodDemand()

Fuerza a un SecurityException en tiempo de ejecución si todos los autores de llamada situados en la parte superior de la pila de llamadas no disponen del permiso especificado por la instancia actual.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodDeny()

Obsoleto. Impide que los autores de la llamada situados en la posición más alta de la pila de llamadas usen el código que llama a este método para tener acceso al recurso especificado por la instancia actual.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodFromXml(SecurityElement)

Reconstruye un SocketPermission instancia para una codificación de XML.(Invalida CodeAccessPermission.FromXml(SecurityElement)).

System_CAPS_pubmethodGetHashCode()

Obtiene un código hash para el objeto CodeAccessPermission que es adecuado para usarlo en algoritmos hash y las estructuras de datos, como una tabla hash.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIntersect(IPermission)

Devuelve la intersección lógica entre dos SocketPermission instancias.(Invalida CodeAccessPermission.Intersect(IPermission)).

System_CAPS_pubmethodIsSubsetOf(IPermission)

Determina si el permiso actual es un subconjunto del permiso especificado.(Invalida CodeAccessPermission.IsSubsetOf(IPermission)).

System_CAPS_pubmethodIsUnrestricted()

Comprueba el estado de permiso global del objeto.

System_CAPS_pubmethodPermitOnly()

Impide que los llamadores situados más arriba en la pila de llamadas usen el código que llama a este método para tener acceso a todos los recursos excepto al recurso especificado por la instancia actual.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodToString()

Crea y devuelve una representación de cadena del objeto de permiso actual.(Heredado de CodeAccessPermission).

System_CAPS_pubmethodToXml()

Crea una codificación XML de un SocketPermission instancia y su estado actual.(Invalida CodeAccessPermission.ToXml()).

System_CAPS_pubmethodUnion(IPermission)

Devuelve la unión lógica entre dos SocketPermission instancias.(Invalida CodeAccessPermission.Union(IPermission)).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticAllPorts

Define una constante que representa todos los puertos.

SocketPermission instancias controlan el permiso que aceptan conexiones o inician Socket las conexiones. Un Socket se pueden establecer permisos para un nombre de host o dirección IP, un número de puerto y un protocolo de transporte.

System_CAPS_noteNota

Evite crear permisos de socket mediante nombres de host, como estos nombres deben resolverse en direcciones IP y lo que podría bloquear la pila.

En el ejemplo siguiente se muestra cómo utilizar el SocketPermission clase para establecer, cambiar y aplicar varias restricciones de acceso de socket.


     // Creates a SocketPermission restricting access to and from all URIs.
     SocketPermission mySocketPermission1 = new SocketPermission(PermissionState.None);

     // The socket to which this permission will apply will allow connections from www.contoso.com.
     mySocketPermission1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.contoso.com", 11000);

     // Creates a SocketPermission which will allow the target Socket to connect with www.southridgevideo.com.
     SocketPermission mySocketPermission2 =
                                new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "www.southridgevideo.com", 11002);

     // Creates a SocketPermission from the union of two SocketPermissions.
     SocketPermission mySocketPermissionUnion = 
                                (SocketPermission)mySocketPermission1.Union(mySocketPermission2);

     // Checks to see if the union was successfully created by using the IsSubsetOf method.
     if (mySocketPermission1.IsSubsetOf(mySocketPermissionUnion) && 
     	   mySocketPermission2.IsSubsetOf(mySocketPermissionUnion)){
          Console.WriteLine("This union contains permissions from both mySocketPermission1 and mySocketPermission2"); 

          // Prints the allowable accept URIs to the console.
          Console.WriteLine("This union accepts connections on :");

          IEnumerator myEnumerator = mySocketPermissionUnion.AcceptList;
	   while (myEnumerator.MoveNext()) {
               Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
	        }      

             // Prints the allowable connect URIs to the console.
          Console.WriteLine("This union permits connections to :");

          myEnumerator = mySocketPermissionUnion.ConnectList;
	   while (myEnumerator.MoveNext()) {
               Console.WriteLine(((EndpointPermission)myEnumerator.Current).ToString());
	        }      

           }


     // Creates a SocketPermission from the intersect of two SocketPermissions.
     SocketPermission mySocketPermissionIntersect = 
                               (SocketPermission)mySocketPermission1.Intersect(mySocketPermissionUnion);

     // mySocketPermissionIntersect should now contain the permissions of mySocketPermission1.
     if (mySocketPermission1.IsSubsetOf(mySocketPermissionIntersect)){
          Console.WriteLine("This is expected");
     }
    // mySocketPermissionIntersect should not contain the permissios of mySocketPermission2.
     if (mySocketPermission2.IsSubsetOf(mySocketPermissionIntersect)){
          Console.WriteLine("This should not print");
     }



// Creates a copy of the intersect SocketPermission.
     SocketPermission mySocketPermissionIntersectCopy = 
                               (SocketPermission)mySocketPermissionIntersect.Copy();

     if (mySocketPermissionIntersectCopy.Equals(mySocketPermissionIntersect)){
     Console.WriteLine("Copy successfull");
     }


     // Converts a SocketPermission to XML format and then immediately converts it back to a SocketPermission.
     mySocketPermission1.FromXml(mySocketPermission1.ToXml());


     // Checks to see if permission for this socket resource is unrestricted.  If it is, then there is no need to
     // demand that permissions be enforced.
     if (mySocketPermissionUnion.IsUnrestricted()){

          //Do nothing.  There are no restrictions.

     }
     else{
         // Enforces the permissions found in mySocketPermissionUnion on any Socket Resources used below this statement. 
         mySocketPermissionUnion.Demand();
     }

	IPHostEntry myIpHostEntry = Dns.Resolve("www.contoso.com");
	IPEndPoint myLocalEndPoint = new IPEndPoint(myIpHostEntry.AddressList[0], 11000);

       Socket s = new Socket(myLocalEndPoint.Address.AddressFamily,
       	                           SocketType.Stream,
                                         ProtocolType.Tcp);
       try{
            s.Connect(myLocalEndPoint);
       }
       catch (Exception e){
            Console.WriteLine("Exception Thrown: " + e.ToString());
       } 

      // Perform all socket operations in here.

      s.Close();

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: