WebSecurity.CurrentUserId = -1

本文关键字:CurrentUserId WebSecurity | 更新日期: 2023-09-27 18:07:12

我正在开发一个android应用程序,它应该登录/注册并从数据库中读取一些数据。

我有WebApi登录控制器。

这是我的问题

[HttpPost]
public HttpResponseMessage Post(Login model)
{
    if (WebSecurity.Login(model.UserName, model.Password))
    {
        int userid = WebSecurity.CurrentUserId;// <- this value is = -1
        string name = WebSecurity.CurrentUserName;// <- this value is = ""
        some query where i need the user id(userid);
    }
    else 
        ...
}

为什么成功登录后我仍然有-1作为一个值?

我注意到,即使在mvc项目发生同样的事情,但成功登录后,用户被重定向到另一个页面,其中列出的数据(当控制器执行当前用户id已经更新)。

WebSecurity.CurrentUserId = -1

WebSecurity。登录设置cookie。在用户被认证之前,框架必须重新读取该cookie,这意味着必须发生另一个web请求。

换句话说,您必须重定向到另一个页面,或者在请求被验证之前必须有另一个web请求进入。