相关问题:
Authentication in .NET Web API using MVC FormsAuthentication
我有一个客户端应用程序,它位于我的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来使用表单身份验证。当客户端和服务器位于不同的域时,这是否可行?
如果我能提供任何其他信息以使此问题更清晰,请告诉我。
答案 0 :(得分:2)
假设您使用的是CORS。默认情况下,cookie未启用CORS。在jQuery中,您需要设置
xhrFields: {
withCredentials: true
}
此外,服务器必须发送响应标头Access-Control-Allow-Credentials: true
。