2010-03-30 13 views
7

Cuando desplegué mis servicios de datos de WCF para la producción de recibimiento empecé a tener el siguiente error (o similar dependiendo de qué esquemas de autenticación están activos):Cómo deshabilitar esquemas de autenticación de WCF Data Services

IIS autenticación especificado esquemas 'Básico, Anónimo', pero el enlace solo admite la especificación de exactamente un esquema de autenticación. Los esquemas de autenticación válidos son Resumen, Negociar, NTLM, Básico o Anónimo. Cambie la configuración de IIS para que solo se use un esquema de autenticación simple .

Al parecer, WCF Data Services (WCF en general?) No puede manejar tener más de una vez el esquema de autenticación activo.

OK, así que estoy consciente de que puedo deshabilitar el esquema de autenticación de uno a uno en la aplicación web a través del panel de control de IIS ... a través de una solicitud de soporte.

¿Existe alguna forma de especificar un esquema de autenticación único en un nivel por servicio en el archivo web.config?

pensé que esto podría ser tan sencillo como realizar un cambio en <system.serviceModel> pero ... resulta que WCF Data Services no la configura a sí mismos en el web.config. Si nos fijamos en la clase DataService<>, no implementa un [ServiceContract], por lo que no puede consultarlo en el <service><endpoint> ... que supongo sería necesario para cambiar su configuración a través de XML.

P.S. Nuestro host está utilizando II6, pero ambas soluciones para IIS6 & IIS7 son apreciadas.

Respuesta

16

En primer lugar, es posible configurar los servicios de datos en el archivo de configuración web. El contrato utilizado por DataService se llama System.Data.Services.IRequestHandler.

Esto es lo que puede hacer en el archivo de configuración web para configurarlo.

En la etiqueta de servicio del elemento System.ServiceModel añadir el

<service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
    <endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler"> 
    </endpoint> 
</service> 

Una vez que tenga que allí se puede iniciar la configuración de todas las maneras de lo que utilizan los elementos de configuración estándar de WCF.

En segundo para activar o métodos de autenticación con discapacidad para un servicio específico en IIS, puede hacer lo siguiente:

En el complemento IIS por clic derecho sobre el archivo de servicio (es decir yourservice.svc) y haga clic en Propiedades. Una vez dentro de las propiedades, vaya a la pestaña Seguridad de archivos y elija el botón Editar en el cuadro de grupo de control de autenticación y acceso. después de eso, es como configurar la seguridad del directorio en IIS.

Como última sugerencia para cualquier problema de resolución, es importante habilitar los avisos del wcf mientras lo configura utilizando la configuración xml, escrito en WCF, el registro del servicio de datos es rico y muy informativo.

usted puede encontrar más información al respecto en WCF Administration and Diagnostics

Espero haber sido capaz de ayudarle con su problema

quiero saber cómo va cosas.

Saludos

Daniel Portella

ACTUALIZACIÓN:

Hola Schneider

Para especificar el esquema de autenticación en el xml leer a continuación

Para la autenticación de Windows como un ejemplo

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding name="MyBindingName" > 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <services> 
     <service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler"> 
     </endpoint> 
     </service> 
    </services> 
    </system.serviceModel> 
</configuration> 

Para otros tipos de autenticación compruebe la biblioteca MSDN para ejemplos

Common Scenarios for security

+0

gracias. la configuración del punto final es útil. ahora tengo que buscaré una forma de especificar el esquema de autenticación en el xml ... – Schneider

+0

agregar una actualización arriba espero que te explique cómo configurar la autenticación para el servicio – dmportella

+0

¡Si pudiera darte recompensa ...! ¡Muchas gracias! – Rashack

Cuestiones relacionadas