Pregunta

es posible hacer una personalizada QueryIrkInteptor en un WCF Data¿Servicio en todos los entidades en lugar de solo uno?Este es un consultorio estándar:

[QueryInterceptor("Products")]
public Expression<Func<Product, bool>> OnQueryProducts()
{
    var user = HttpContext.Current.User;
    if (user.IsInRole("Administrator"))
        return (Product p) => true;
    else
        return (Product p) => false;
}

me gusta hacer algo como esto:

[QueryInterceptor("*")]
public Expression<Func<Object, bool>> OnQueryProducts()
{
    var user = HttpContext.Current.User;
    if (user.IsInRole("Administrator"))
        return (Object p) => true;
    else
        return (Object p) => false;
}

¿Hay alguna forma o tengo que integrar un INCEPTOR para todas mis entidades?

¿Fue útil?

Solución

Lamentablemente, no puede usar una tarjeta Wild con el consultivo, sin embargo, puede lograr el mismo resultado que en su ejemplo reforzó el método ONSTARTPROCESSINGRIBSESTE del servicio de datos y revise la función del usuario.

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
    var user = HttpContext.Current.User;

    // Only Administrator users are allowed access
    if (!user.IsInRole("Administrator"))
    {
        // Any other role throws a security exception
        throw new SecurityException("You do not have permission to access this Service");
    }

    base.OnStartProcessingRequest(args);
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top