ServiceStack自定义CredentialsAuthProvider AJAX调用

时间:2013-09-10 06:59:57

标签: c# jquery authentication servicestack

我正在使用ServiceStack自定义CredentialsAuthProvider对自定义数据库进行身份验证,它可以很好地与C#客户端配合使用。我还需要能够通过jQuery调用我的一些服务(在启用了CORS的不同域上),但我不知道如何从$ ajax将证书传递给服务(需要使用[Authenticate]进行身份验证)或$ post。可能吗?我确实看到了使用BasicAuthentication的示例,但是如何使用自定义身份验证提供程序和我的自定义数据库?

编辑:我措辞不好。我已经在ServiceStack端进行了身份验证,并且我有一个ss-id。我正在试图找出如何调用一个服务方法,该方法需要通过jQuery以及来自不同域的ss-id进行身份验证。

1 个答案:

答案 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);
});
};