1

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

编辑:我对这个问题的措辞很差。我已经在 ServiceStack 端进行了身份验证,并且我有一个 ss-id。我试图弄清楚如何调用需要通过 jQuery 进行身份验证的服务方法,其中 ss-id 以某种方式来自不同的域。

4

1 回答 1

1

有点粗糙,删除了 HTML 和表单/验证代码,但取自工作应用程序。

填写您的身份验证“dto”,添加您需要的任何额外自定义属性,并调整 url 等。一旦通过身份验证,您就可以调用您的安全服务。

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);
});
};
于 2013-09-10T20:19:36.780 回答