我正在尝试使用Service ESTACK的Type Script JSONService Eclipse,它在不需要身份验证的路由下工作得很好,但是我找不到任何关于如何使用认证路由的文档。
我正在使用基本身份验证,如果手动设置授权头,我可以让它正常工作,但是我看到jsonserviceclient的credentials属性是一个字符串。
在使用基本AUTH(或任何其他AuthApple提供程序)中,凭据字符串应该是什么格式,以及如何确保在每个请求上发送基本的AuthHead?
我知道我不应该像穴居人一样手动设置授权头。
最佳答案
如果您注册了CredentialsAuthProvider
,则可以使用普通的web服务请求进行身份验证,例如:
var client = new JsonServiceClient(baseUrl);
client.Post(new Authenticate {
provider = "credentials",
UserName = userName,
Password = password,
RememberMe = true,
});
如果成功(即不抛出),serviceclient将填充ServiceStack's Session Cookies以允许它发出经过身份验证的请求。
如果启用了http basic auth,即注册了
BasicAuthProvider
,则可以使用内置的用户名/密码属性在每个请求中发送http basic auth凭据,即:var client = new JsonServiceClient(baseUrl) {
UserName = userName,
Password = password
};
如果您已经注册了
ApiKeyAuthProvider
或specify an API Key(如果使用JwtAuthProvider
),则使用服务客户端进行身份验证的其他一些选项是specifying a JWT Token。