我正在尝试使用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
};

如果您已经注册了ApiKeyAuthProviderspecify an API Key(如果使用JwtAuthProvider),则使用服务客户端进行身份验证的其他一些选项是specifying a JWT Token

09-28 11:05