我尝试使用ServiceStack的打字稿JsonServiceClient,它适用于不需要身份验证的路由,但我找不到任何有关如何使用它的文档认证路线。
我使用基本身份验证,如果我手动设置授权标头,我可以使用它,但我看到JsonServiceClient的凭据属性是字符串。
凭据字符串应使用哪种格式来使用基本身份验证(或任何其他身份验证提供程序),如何确保在每次请求时都发送基本身份验证标头?
我知道我不必像穴居人一样手动设置授权标题。
答案 0 :(得分:2)
如果您已注册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
注册了JwtAuthProvider
或specify an API Key,则使用服务客户端进行身份验证的其他选项是specifying a JWT Token。