3

我正在使用 ServiceStack 编写基于 REST 的服务,但作为身份验证的一部分,我需要授权跨域,但无法跨域读取 cookie,因此即使我的 JSON POST 到身份验证服务成功并且返回 SetCookie 结果,它永远不会看到该 cookie,因为它看不到它。

问题是,有没有其他方法可以解决这个问题,也许我可以通过请求标头或其他方式提供相同的值?

4

2 回答 2

2

如果客户端和接收方都允许,您可以在跨域请求中传递 cookie。在此处查看此链接

于 2012-12-05T15:09:27.090 回答
1

您可以在 Ajax 请求中使用HTTP BasicAuth HTTP 标头,服务器需要启用 BasicAuthProvider(),例如:

Plugins.Add(new AuthFeature(
    () => new CustomUserSession(), //Use your own typed Custom UserSession type
    new IAuthProvider[] {
        new BasicAuthProvider(), //Sign-in with Basic Auth
        //... other providers
    }));

尽管请注意 BasicAuth 只是您的用户名/密码的 Base64 编码版本,因此理想情况下这应该通过 SSL 发生。

有关如何使用 jQuery 添加 BasicAuth 标头的信息,请参阅此答案。

于 2012-12-04T20:34:52.540 回答