我正在使用ServiceStack自定义CredentialsAuthProvider对自定义数据库进行身份验证,它可以很好地与C#客户端配合使用。我还需要能够通过jQuery调用我的一些服务(在启用了CORS的不同域上),但我不知道如何从$ ajax将证书传递给服务(需要使用[Authenticate]进行身份验证)或$ post。可能吗?我确实看到了使用BasicAuthentication的示例,但是如何使用自定义身份验证提供程序和我的自定义数据库?
编辑:我措辞不好。我已经在ServiceStack端进行了身份验证,并且我有一个ss-id。我正在试图找出如何调用一个服务方法,该方法需要通过jQuery以及来自不同域的ss-id进行身份验证。
答案 0 :(得分:1)
有点粗略,删除了HTML和表单/验证代码,但是从一个正在运行的应用程序中删除。
填写您的auth'dto',添加您需要的任何额外自定义属性,并调整网址等。通过身份验证后,您可以致电您的安全服务。
var auth = {
"userName": null,
"firstName": null,
"lastName": null,
"displayName": null,
"email": null,
"password": null,
"autoLogin": false,
"continue": null
};
var request = $.ajax({
type: "POST",
url: '/auth',
data: auth,
contentType: "application/json;",
dataType: "json"
});
request.done(function (data) {
console.log(data);
//redirect to secure service (assuming SS Razor view, or make other request)
window.location.href = auth.continue;
});
request.fail(function (jqXhr, textStatus) {
console.log("Request failed: " + textStatus);
console.log(jqXhr);
});
};