Compartir a través de


Cómo crear una notificación personalizada

La infraestructura del modelo de identidad en Windows Communication Foundation (WCF) proporciona un conjunto de derechos y tipos de demanda integradas con las funciones auxiliares para crear instancias Claim con esos tipos y derechos. Estas demandas integradas están diseñadas para modelar información en los tipos de credencial de un cliente que WCF admite de forma predeterminada. En muchos casos, las demandas integradas son suficientes; sin embargo, algunas aplicaciones pueden exigir demandas personalizadas. Una demanda está compuesta por el tipo de demanda, el recurso para el que la demanda se aplica y el derecho que se impone sobre ese recurso. En este tema se describe cómo crear una demanda personalizada.

Para crear una demanda personalizada que está basada en un tipo de datos primitivo

  1. Cree una demanda personalizada pasando el tipo de demanda, valor de recurso y derecho al constructor Claim.

    1. Seleccione un valor único para el tipo de demanda.
      El tipo de demanda es un identificador de cadena único. Es la responsabilidad del diseñador de la demanda personalizada asegurar que el identificador de cadena que se usa para el tipo de demanda sea único. Si necesita más información sobre la lista de tipos de demanda definidos por WCF, consulte la clase ClaimTypes.
    2. Elija el tipo de datos primitivo y el valor para el recurso.
      Un recurso es un objeto. El tipo CLR del recurso puede ser primitivo, como String o Int32, así como cualquier tipo serializable. El tipo CLR del recurso debe ser serializable, porque las demandas se serializan en varios puntos a través de WCF. Los tipos primitivos son serializables.
    3. Elija un derecho definido por WCF o un valor único para un derecho personalizado.
      Un derecho es un identificador de cadena único. Los derecho definidos por WCF se definen en la clase Rights.
      Es la responsabilidad del diseñador de la demanda personalizada asegurar que el identificador de cadena que se usa para el derecho sea único.
      El ejemplo de código siguiente crea una demanda personalizada con un tipo de demanda de http://example.org/claims/simplecustomclaim, para un recurso denominado Driver's License y con el derecho PossessProperty.

Para crear una demanda personalizada basada en un tipo de datos no primitivo

  1. Cree una demanda personalizada pasando el tipo de demanda, valor de recurso y derecho al constructor Claim.

    1. Seleccione un valor único para el tipo de demanda.
      El tipo de demanda es un identificador de cadena único. Es la responsabilidad del diseñador de la demanda personalizada asegurar que el identificador de cadena que se usa para el tipo de demanda sea único. Si necesita más información sobre la lista de tipos de demanda definidos por WCF, consulte la clase ClaimTypes.
    2. Elija o defina un tipo no primitivo serializable para el recurso.
      Un recurso es un objeto. El tipo CLR del recurso debe ser serializable, porque las demandas se serializan en varios puntos a través de WCF. Los tipos primitivos ya son serializables.
      Cuando se define un nuevo tipo, aplique DataContractAttribute a la clase. Aplique también el atributo DataMemberAttribute a todos los miembros del nuevo tipo que necesiten ser serializados como parte de la demanda.
      El ejemplo de código siguiente define un tipo de recurso personalizado denominado MyResourceType.
    3. Elija un derecho definido por WCF o un valor único para un derecho personalizado.
      Un derecho es un identificador de cadena único. Los derecho definidos por WCF se definen en la clase Rights.
      Es la responsabilidad del diseñador de la demanda personalizada asegurar que el identificador de cadena que se usa para el derecho sea único.
      El ejemplo de código siguiente crea una demanda personalizada con un tipo de demanda de http://example.org/claims/complexcustomclaim, un tipo de recurso personalizado de MyResourceType y con el derecho PossessProperty.

Ejemplo

El ejemplo de código siguiente muestra cómo crear una demanda personalizada con un tipo de recurso primitivo y una demanda personalizada con un tipo de recurso no primitivo.

Consulte también

Referencia

Claim
Rights
ClaimTypes
DataContractAttribute
DataMemberAttribute

Conceptos

Administración de notificaciones y autorización con el modelo de identidad
Administración de notificaciones y autorización con el modelo de identidad