Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La infraestructura del modelo de identidad en Windows Communication Foundation (WCF) se utiliza para realizar la comprobación de autorización. Como tal, una tarea común es comparar las notificaciones en el contexto de autorización con las notificaciones necesarias para realizar la acción solicitada o tener acceso al recurso solicitado. En este tema se describe cómo comparar las notificaciones, incluidos los tipos de notificación integrados y personalizados. Para obtener más información sobre la infraestructura del modelo de identidad, vea Administración de notificaciones y autorización con el modelo de identidad.
La comparación de notificaciones implica la comparación de tres partes de una notificación (tipo, derecho y recurso) con las mismas partes en otra notificación para ver si son iguales. Por ejemplo, dadas dos notificaciones Name;
Ambas notificaciones tendrán un tipo de notificación de Name, un derecho de PossessProperty y un recurso de la cadena "someone". Como las tres partes de la notificación son iguales, las notificaciones en sí mismas también lo son.
Los tipos de notificación integrados se comparan mediante el método Equals. Se utiliza el código de la comparación específico de la notificación allí donde sea necesario. Por ejemplo, dadas las siguientes dos notificaciones del nombre principal del usuario (UPN):
el código de la comparación en el método Equals devuelve true, al suponer que example\someone identifica el mismo usuario de dominio que "someone@example.com."
Los tipos de notificación personalizados también se pueden comparar con el método Equals. Sin embargo, en casos donde el tipo devuelto por la propiedad Resource de la notificación es distinto a un tipo primitivo, Equals sólo devuelve true si los valores devueltos por las propiedades Resource son iguales que el método Equals. En casos donde esto no sea adecuado, el tipo personalizado devuelto por la propiedad Resource debería invalidar los métodos Equals y GetHashCode para realizar el procesamiento personalizado que sea necesario.
Comparación de notificaciones integradas
- Dadas dos instancias de la clase Claim, utilice Equals para realizar la comparación, tal y como se muestra en el código siguiente.
Comparación de las notificaciones personalizadas con los tipos de recursos primitivos
En el caso de las notificaciones personalizadas con tipos de recursos primitivos, se puede realizar la comparación para las notificaciones integradas, tal y como se muestra en el código siguiente.
En el caso de las notificaciones con tipos de recursos basados en la estructura o la clase, el tipo de recurso debería invalidar el método Equals.
Primero compruebe si el parámetro obj es null y, en ese caso, devuelva false.
A continuación, llame a ReferenceEquals pasando this y obj como parámetros. Si devuelve true, después devuelve true.
Luego intente asignar obj a una variable local del tipo de clase. Si se produce un error, la referencia será null. En tales casos, devuelva false.
Realice la comparación personalizada necesaria para comparar correctamente la notificación actual con la notificación proporcionada.
Ejemplo
El ejemplo siguiente muestra una comparación de notificaciones personalizadas donde el recurso de la notificación es un tipo no primitivo.
Consulte también
Tareas
Cómo crear una notificación personalizada
Conceptos
Administración de notificaciones y autorización con el modelo de identidad