Cuando falla la autenticación de ServiceStack, ¿no se redirige?

Estamos construyendo una API de ServiceStack que utilizará la autenticación básica. Actualmente configuré la autenticación en mi AppHost de la siguiente manera:

var authDb = new OrmLiteConnectionFactory("Server=(...);", true, MySqlDialectProvider.Instance); var authRepo = new OrmLiteAuthRepository(authDb); authRepo.CreateMissingTables(); container.Register(c => new MemoryCacheClient()); container.Register(c => authRepo); Plugins.Add( new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() }) ); 

Al realizar una solicitud sin un encabezado de autorización o con el nombre de usuario o contraseña incorrectos, la respuesta es un redireccionamiento a /Account/Login.aspx?ReturnUrl = …

Solicitud de parlamento + ejemplo de respuesta:

 POST http://localhost:60278/reserve HTTP/1.1 HTTP/1.1 302 Found Location: /Account/Login.aspx?ReturnUrl=%2freserve X-Powered-By: ServiceStack/3,924 Win32NT/.NET 

¿Hay alguna manera de hacerlo responder solo con un HTTP 401 no autorizado o un HTTP 403 prohibido?

De forma predeterminada, AuthFeature de ServiceStack solo intentará redireccionarle a la ruta ~/login predeterminada para las solicitudes de tipo de contenido HTML . Puede anular esto configurando la ruta de redirección en AuthFeature como nulo:

 Plugins.Add(new AuthFeature(...) { HtmlRedirect = null }); 

Esto recaerá en la Respuesta no 401 UnAuthorized estándar 401 UnAuthorized los otros Tipos de contenido.

Después de configurar globalmente HtmlRedirect como nulo, puede volver a agregarlo adhoc, por ejemplo:

 [Authenticate(HtmlRedirect="~/path/to/redirect/to")]