1

相关问题:

使用 MVC FormsAuthentication 在 .NET Web API 中进行身份验证

我有一个客户端应用程序,它位于我的 WebAPI 解决方案域之外(现在 localhost 上有两种不同的解决方案 - 一个在端口 X 上,另一个在端口 Y 上)。我正在尝试将表单身份验证与如下代码一起使用:

if (WebSecurity.Login(model.UserName, model.Password, persistCookie: true))
            {
                var response = Request.CreateResponse(HttpStatusCode.OK, "logged in successfully");
                return response;
            }

在像 POSTMan 这样的工作中,但使用客户端/JS 应用程序时,cookie 不会被保存,因此用户永远不会真正经过身份验证。我看到 _RequestVerificationToken,但从来没有看到 .ASPXAUTH 令牌。

此应用程序的一个要求是通过使用 WebSecurity 设置 cookie 来使用表单身份验证。当客户端和服务器位于不同的域时,这可能吗?

如果我可以提供其他任何东西来使这个问题更清楚,请告诉我。

4

1 回答 1

2

假设您正在使用 CORS。默认情况下,不使用 CORS 启用 cookie。在 jQuery 中,您需要设置

xhrFields: {
       withCredentials: true
}

此外,服务器必须发送响应标头Access-Control-Allow-Credentials: true

于 2013-07-06T19:43:27.520 回答