¿Limitar el acceso a un servicio WCF REST (webHttpBinding) utilizando el proveedor de membresía ASP.NET?

StackOverflow https://stackoverflow.com/questions/481090

Pregunta

He encontrado una gran cantidad de material en la web sobre el uso del proveedor de membresía ASP.NET con wsHttpBindings, pero no he visto ninguna referencia al uso con webHttpBindings.

Estoy buscando un sistema que funcione en dos escenarios:

  1. El usuario ha iniciado sesión en un sitio web asp.net y el sitio web está haciendo llamadas al servicio.
  2. El usuario accede al servicio directamente a través de REST.

¿Es esto posible utilizando el marco integrado (es decir, solo a través de la configuración)? Si es así, ¿cómo configuro el servicio? ¿Y cómo pasa el usuario las credenciales al servicio REST?

¿Fue útil?

Solución

La mejor fuente que he encontrado está aquí: http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF .aspx

El sitio también tiene toneladas de otra información sobre la configuración de módulos HTTP para manejar la autenticación básica (que supongo que usará, ya que es una especie de estándar).

El método de autenticación del Módulo HTTP se encuentra en Codeplex con código de muestra y todo aquí: http: //www.codeplex .com / CustomBasicAuth

Otros consejos

¿

Servicios de datos ADO.NET que quieres decir?

Puede crear un QueryInterceptor para una entidad y limitar el acceso a él. Por ejemplo:

    [QueryInterceptor("foo_entity")]
    public Expression<Func<foo_entity, bool>> FilterMembership()
    {
        MembershipUser user = Membership.GetUser();
        Guid userGuid = (Guid)user.ProviderUserKey;
        return c => c.UserId == userGuid;
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top