我已经使用第一个示例设置了具有基本身份验证的服务堆栈服务,此处: 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 header 也包含用户和密码。
使用浏览器发送带有 user/pass URL 参数的 GET 请求,或者作为
http://user:pass@localhost:123/auth/basic
我总是收到“HTTP/1.1 401 无效的 BasicAuth 凭据”。
我能找到的唯一示例涉及某种自定义身份验证,然后访问/auth/credentials,但我想使用/auth/basic
我查看了代码,看起来它读取了一个 Auth header ,但该服务不接受一个。
我实际上是在尝试让它工作,这样我就可以禁用它并验证它是否被禁用(我想要求对每个请求进行基本身份验证)。
问题是:
调用/auth/basic 服务的正确方法是什么?我将采用 servicestack 客户端 API 示例、规范甚至原始 http 请求!
如何完全禁用/auth 服务?
非常感谢。
最佳答案
调用/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
,JSON 格式如下所示
{
"UserName": "admin",
"Password": "test"
"RememberMe": true
}
如何完全禁用/auth 服务?
不要将 AuthFeature
插件添加到配置中。
您也可以remove plugins
Plugins.RemoveAll(x => x is AuthFeature);
关于authentication - 您如何从 servicestack 基本身份验证请求 session ,at/auth/basic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16006627/