Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Cómo: Examinar el contexto de seguridad

Al programar servicios Windows Communication Foundation (WCF), el contexto de seguridad de servicio le permite determinar los detalles sobre las demandas y credenciales del cliente y utilizadas para autenticarse con el servicio. Esto se hace utilizando las propiedades de la clase ServiceSecurityContext.

Por ejemplo, puede recuperar la identidad del cliente actual utilizando la propiedad PrimaryIdentity o WindowsIdentity. Para determinar si el cliente es anónimo, utilice la propiedad IsAnonymous.

También puede determinar qué demandas se están realizando en nombre del cliente recorriendo en iteraciones la colección de demandas en la propiedad AuthorizationContext.

Obtención del contexto de seguridad actual

  • Tenga acceso a la propiedad estática Current para obtener el contexto de seguridad actual. Examine cualquiera de las propiedades del contexto actual de la referencia.

Determinación de la identidad del llamador

Análisis de las demandas de un llamador

  1. Devuelva la clase AuthorizationContext actual. Utilice la propiedad Current para devolver el contexto de seguridad de servicio actual, a continuación, devuelva el AuthorizationContext mediante la propiedad AuthorizationContext.

  2. Analice la colección de objetos de vueltos de ClaimSet mediante la propiedad ClaimSets de la clase AuthorizationContext.

El ejemplo siguiente imprime los valores de las propiedades WindowsIdentity y PrimaryIdentity del contexto de seguridad actual y la propiedad ClaimType, el valor de recurso de la demanda, y la propiedad Right de cada demanda en el contexto de seguridad actual.


        // Run this method from within a method protected by the PrincipalPermissionAttribute
        // to see the security context data, including the primary identity.
        public void WriteServiceSecurityContextData(string fileName)
        {
            using (StreamWriter sw = new StreamWriter(fileName))
            {
                // Write the primary identity and Windows identity. The primary identity is derived from
                // the credentials used to authenticate the user. The Windows identity may be a null string.
                sw.WriteLine("PrimaryIdentity: {0}", ServiceSecurityContext.Current.PrimaryIdentity.Name);
                sw.WriteLine("WindowsIdentity: {0}", ServiceSecurityContext.Current.WindowsIdentity.Name);
                sw.WriteLine();
                // Write the claimsets in the authorization context. By default, there is only one claimset
                // provided by the system. 
                foreach (ClaimSet claimset in ServiceSecurityContext.Current.AuthorizationContext.ClaimSets)
                {
                    foreach (Claim claim in claimset)
                    {
                        // Write out each claim type, claim value, and the right. There are two
                        // possible values for the right: "identity" and "possessproperty". 
                        sw.WriteLine("Claim Type = {0}", claim.ClaimType);
                        sw.WriteLine("\t Resource = {0}", claim.Resource.ToString());
                        sw.WriteLine("\t Right = {0}", claim.Right);
                    }
                }
            }
        }



Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft