usa servicio que pueden puede protocolo obtener ningun metadatos invocar extremo error enlace encuentra desconocido deberse componente wcf iis-7 was

que - ¿Las solicitudes a un servicio WCF alojado por WAS están autenticadas por el canal de procesamiento de IIS o...?



no se pueden obtener metadatos de https (2)

Las siguientes preguntas suponen que estamos alojando en WAS un servicio de WCF al lado de Asp.Net:

"Al hospedar WCF al lado de Asp.Net: la infraestructura de alojamiento de WCF intercepta las solicitudes de WCF cuando se genera el evento PostAuthenticateRequest y no devuelve el procesamiento a la canalización HTTP de ASP.NET. Los módulos que están codificados para interceptar solicitudes en etapas posteriores de la la tubería no intercepta las solicitudes WCF ".

"Con la configuración lado a lado, la infraestructura de alojamiento WCF intercepta los mensajes WCF y los envía fuera de la tubería HTTP"

a) Suponiendo que WAS recibe una solicitud para un servicio WCF, ¿se invocará el mecanismo de autenticación de WCF ( Windows , MembershipProvider o autenticación personalizada ) cuando se PostAuthenticateRequest evento PostAuthenticateRequest , o WCF autenticará una solicitud solo después de que enrute la solicitud fuera de la canalización HTTP? En otras palabras, ¿el mecanismo de autenticación de WCF funciona fuera del proceso de procesamiento de IIS?

b) Si el mecanismo de autenticación de WCF funciona fuera de la interconexión de procesamiento de IIS, entonces supongo que FormsAuthenticationModule no está involucrado con la autenticación del cliente WCF (suponiendo que el servicio esté utilizando autenticación de formularios).

c) Además, si el mecanismo de autenticación de WCF funciona fuera de la interconexión de procesamiento de IIS, entonces supongo que IIS / WAS debe configurarse para la autenticación anónima, incluso si el servicio es de autenticación con clientes que utilizan la autenticación de Windows.

d) ¿Las respuestas a mi pregunta anterior serían diferentes si el servicio WCF estuviera alojado por IIS7 (además del hecho de que el servicio solo debe usar puntos finales que se comuniquen a través del protocolo HTTP)?

Gracias


Recomendaría implementar un proyecto de punta técnica.

En el núcleo, siempre puede implementar un atributo de acceso de código para asegurar sus contactos de operación.

Puede comenzar aplicando PrincipalPermission (integrado) donde establece IPrincipal en Thread.CurrentPrincipal (constructor de su servicio wcf) cuando está alojado en IIS puede establecer HttpContext.Current.User pero HttpContext será nulo en su caso. Para utilizar PrincipalPermission, deberá tener su propia capacidad para crear / implementar IPrincipal.


Solo puedo responder a la parte D y parte de B, pero esto puede ser suficiente para resolver el problema que está tratando de resolver: si aloja el servicio WCF dentro de una aplicación ASP.Net, entonces se admite la autenticación de formularios SI habilita ASP.Net compatibilidad en el servicio WCF. Usamos este método ampliamente con nuestros applets de Silverlight.

Este es un proceso de dos pasos:

1) Decora tu clase de implementación del servicio WCF con el atributo AspNetCompatibilityRequirements (código de vb.net a continuación):

<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _

2) Agregue la siguiente entrada a su sección <system.servicemodel> en web.config:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />