Estamos en el proceso de desarrollar un servicio web WCF REST que simplemente recibe un montón de texto arbitrario de cualquier usuario anónimo y luego realiza algún procesamiento en el back-end.WCF REST Service - 401 No autorizado
Por ejemplo, aquí está un método de nuestro servicio web:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
Si nos limitamos a usar la configuración por defecto de IIS obtenemos un (401) Unauthorized
. Sin embargo, después de mucho ensayo y error, descubrimos que podíamos hacer que funcionase dando acceso ESCRIBIR a 'Todos' en el archivo .svc
real de nuestro servicio.
Mi pregunta es: ¿por qué en el mundo necesitaría IIS tener acceso ESCRIBIR a un archivo .svc
para que esto funcione? ¿Hay una manera mejor o estoy atrapado con esta solución temporal hackish (y posiblemente insegura)?
WTF Microsoft?
posiblemente relacionados:
- PUT and DELETE in RESTful WCF Service cause 401 Unauthorized error
- IIS7 Post/Put/Patch/Delete WCF oData - Authentication Failure 401.3
Los derechos de acceso no necesariamente tienen que ser concedida a "Todo el mundo". En cambio, el usuario autenticado debe tener estos derechos. Para acceso anónimo esto es IUSR. – chiccodoro