Foros del Web » Programación para mayores de 30 ;) » .NET »

WCF problema con autentificación Basic.

Estas en el tema de WCF problema con autentificación Basic. en el foro de .NET en Foros del Web. Buenas foreros... Tengo un Servicio al cual quiero ponerle una pequeña autentificación personalizada, para permitir el acceso al mismo. En principio, creo que lo he ...
  #1 (permalink)  
Antiguo 25/08/2011, 10:48
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
WCF problema con autentificación Basic.

Buenas foreros...

Tengo un Servicio al cual quiero ponerle una pequeña autentificación personalizada, para permitir el acceso al mismo.

En principio, creo que lo he configurado todo bien, pero tengo dos problemas.

1-. Cuando ejecuto el Servicio, en el navegador no puedo acceder al mismo, y me da el siguiente mensaje de error desde el navegador:
Código:
La configuración de seguridad de este servicio requiere la autenticación 'Basic', pero no está habilitada para la aplicación IIS que hospeda este servicio
Bien, para solucionar este problema, fui al IIS, y en el Directorio Virtual de la aplicación, habilite la autentificación Basica. De esta forma, al intentar acceder al servicio através del navegador, ya puedo ver el metadata, e incluso generar la librería cliente.


2-. El siguiente error es el que no soy capaz de solucionar, y es que desde el cliente, intento ejecutar un método del servicio y me sale el siguiente mensaje de error en la excepción:
Código:
La solicitud HTTP no está autorizada con el esquema de autenticación de cliente 'Basic'. El encabezado de autenticación recibido del servidor era 'Basic realm="pchevia"'

Bien... la verdad es que he revisado a full mi configuración, tanto cliente, como servidor, pero... no tengo ni puta idea de que puede pasar... pero en fin.. espero puedan ayudarme.


CONFIGURACION SERVIDOR
Código:
<?xml version="1.0"?>
<configuration>

  <system.web>

    <compilation debug="true" targetFramework="4.0"/>
  </system.web>  

  <system.serviceModel>

    <bindings>
      <wsHttpBinding>
        <binding name="wsHttpBindingDefault">
          <security mode="Transport">
            <transport clientCredentialType="Basic" proxyCredentialType="None">
            </transport>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    
    <behaviors>      
      <serviceBehaviors>
        <behavior name="behaviorDefault">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="Custom"
                                    customUserNamePasswordValidatorType="ValidationShop, App_Code"/>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />

    <services>
      <service name="Service" behaviorConfiguration="behaviorDefault">
        <endpoint binding="wsHttpBinding" bindingConfiguration="wsHttpBindingDefault" contract="IService" />
        <endpoint name="mex"
                      address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

CONFIGURACION CLIENTE
Código:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="Transport">
                        <transport clientCredentialType="Basic" proxyCredentialType="None" realm="" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://pchevia/wcfShop/Service.svc" binding="wsHttpBinding"
                bindingConfiguration="WSHttpBinding_IService" contract="ShopService.IService"
                name="WSHttpBinding_IService" />
        </client>
    </system.serviceModel>
</configuration>

LLAMADA DESDE EL CLIENTE
Código:
        public string MyProperty { get; set; }
        private void button1_Click(object sender, EventArgs e)
        {

            try
            {

                using (ShopService.ServiceClient objClient = new ShopService.ServiceClient())
                {

                    objClient.ClientCredentials.UserName.UserName = "MIUSUARIO";
                    objClient.ClientCredentials.UserName.Password = "MICLAVE";

                    this.MyProperty = objClient.GetData(2);
                }

                MessageBox.Show(MyProperty);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

En fin... cualquier ayuda, será bien agradecida jeje, saludos.
__________________
Charlie.

Última edición por chcma; 25/08/2011 a las 10:50 Razón: Añadir más información del post.
  #2 (permalink)  
Antiguo 11/11/2011, 11:25
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Respuesta: WCF problema con autentificación Basic.

Como siempre, las respuestas a las dudas de web services brillan por su ausencia...Tiene que Estar complicado esto.
Y bueno, ¿conseguiste reparar el problema?
Tengo un problema muy parecido que no me deja dormir.
http://www.forosdelweb.com/f29/como-...ervice-956286/
Un saludo.
__________________
..:: moNTeZIon ::..

Etiquetas: basic, net, wcf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:51.