¿Cómo puedo devolver un HTTP 401 desde un servicio WCF?Retorno 401 desde el servicio WCF
Respuesta
Dependiendo del momento en que tiene que hacer la verificación de autorización, que podría hacerlo en un HttpModule
usar algo como lo siguiente:
HttpContext context = HttpContext.Current;
context.Response.StatusCode = 401;
context.Response.End();
No es exactamente cierto ... puedes hacer esto con CUALQUIERA de los xHttpBindings. – WayneC
Si está programando un servicio REST se puede hacer de esta manera:
private IWebOperationContext context = new WebOperationContextWrapper(WebOperationContext.Current); // Get the context
context.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized; // Set the 401
Si está utilizando la fábrica WebServiceHost2 desde el Starter Kit WCF REST, también puede lanzar específica WebProtocolException
y especificar un código de retorno HTTP:
alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_5.png alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_10.png alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_12.png
También hay un HttpStatusCode.Unauthorized
que se corresponde con el código de estado 401.
Consulte la excelente publicación de blog de Rob Bagby Effective Error Handling with WCF REST para obtener más detalles sobre las diversas formas de especificar los códigos de retorno HTTP. (Capturas de pantalla son de entrada en el blog de Rob - que se merece todo el crédito por esto.)
throw new WebFaultException(System.Net.HttpStatusCode.Unauthorized);
Notas: "MSDN: Cuando se utiliza un criterio de valoración WCF REST (WebHttpBinding y WebHttpBehavior o WebScriptEnablingBehavior) el código de estado HTTP en la respuesta se establece en consecuencia. Sin embargo, WebFaultException se puede usar con puntos finales que no sean REST y se comporta como una FaultException regular. "
- 1. WCF REST Service - 401 No autorizado
- 2. (401) Error no autorizado: seguridad/enlace WCF
- 3. Devolver una interfaz desde un servicio WCF
- 4. Llamando al Servicio WCF desde MS Access
- 5. WCF: Acceso a la instancia de servicio desde el servidor
- 6. ¿Desea hospedar un servicio WCF desde el servidor Apache?
- 7. ¿Por qué mi servicio WCF alojado automáticamente devuelve 403 Prohibido, en lugar de 401 No autorizado?
- 8. Cómo depurar el servicio WCF?
- 9. Retorno de llamada asincrónico WCF
- 10. DataContract y tipo de retorno dinámico WCF
- 11. ¿Cómo acceder al servicio WCF RIA desde el servicio de Windows?
- 12. Pasar credenciales de un servicio wcf a otro servicio wcf
- 13. Múltiples llamadas simultáneas WCF desde un solo cliente al Servicio
- 14. Cómo obtengo la salida Debug/Trace.Writeline desde un Servicio WCF
- 15. autenticación falló al llamar a un servicio WCF desde ASP.NET
- 16. Sesión de acceso en servicio WCF desde WebHttpBinding
- 17. Servicio web de SAP desde .NET a través de WCF
- 18. Servicio de dominio vs Servicio WCF?
- 19. Servicio Msmq y WCF
- 20. Servicio WCF verdaderamente asíncrono
- 21. Monotouch/WCF: cómo consumir el servicio wcf sin svcutil
- 22. WCF Memoria Servicio Leaks
- 23. Documentación de servicio WCF
- 24. MEF + WCF ¿Servicio Host?
- 25. servicio WCF con Qt?
- 26. Servicio WCF REST autohospedado y autenticación básica
- 27. Alojamiento del servicio WCF en el servicio de Windows
- 28. Reemplazar la biblioteca del servicio WCF sin reiniciar el servicio
- 29. ¿Es un servicio WCF un servicio web?
- 30. Identificación de clientes en un servicio WCF
Están haciendo lo de [OperationContract, WebInvoke] [Service]? –