我使用第一个示例设置了一个带有基本身份验证的Servicestack服务,这里: https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization
这会自动设置路由:/ auth / basic 但是,我找不到有关如何格式化此URL请求的任何信息或示例(变量/ GET / POST / Auth Header等)。
我可以使用基本身份验证凭据访问简单服务,因此它们是活动且正确的。
我没有插入自定义身份验证,只是基本身份验证。
我试过了:
使用JsonServiceClient通过GET或Json POST将UserName和Password变量发送到/ auth / basic,包括和不包含用户&的Auth标头。通过。
使用浏览器发送带有用户/通道的网址参数的GET请求,或http://user:pass@localhost:123/auth/basic
我总是得到“HTTP / 1.1 401无效的BasicAuth凭证”。
我能找到的唯一示例涉及某种自定义身份验证,然后访问/ auth / credentials,但我想使用/ auth / basic
我查看了代码,看起来它看起来像是一个Auth标头,但该服务不接受它。
我实际上是想让它工作,所以我可以禁用它并验证它已被禁用(我想要为每个请求都要求基本身份验证)。
问题是:
调用/ auth / basic服务的正确方法是什么?我将采用servicestack客户端API示例,规范甚至原始http请求!
如何完全禁用/ auth服务?
非常感谢。
答案 0 :(得分:1)
调用/ auth / basic服务的正确方法是什么?我将采用servicestack客户端API示例,规范甚至原始http请求!
var client = new JsonServiceClient("http://localhost:56006/api");
var resp = client.Post(new Auth() { UserName = "TestUser", Password = "Password" });
ICacheClient
和IAuthUserRepository
(并添加了用户帐户)如果您调用/auth/basic?format=json
{
"UserName": "admin",
"Password": "test"
"RememberMe": true
}
如何完全禁用/ auth服务?
请勿将AuthFeature
插件添加到配置中。
您还可以remove plugins
Plugins.RemoveAll(x => x is AuthFeature);
答案 1 :(得分:-1)
将以下内容放在apphost配置中似乎可以解决问题。
//Disable most things, including SOAP support, /auth and /metadata routes
SetConfig(new EndpointHostConfig()
{
EnableFeatures = Feature.Json | Feature.Xml
});
我对这对/ auth的作用有点怀疑,因为它返回一个空响应,而大多数路由返回404。
那么,这会真的禁用/ auth功能吗?如果有人形成对/ auth / credentials的正确请求,它是否仍会返回空响应?