开发一个应该登录/注册并从数据库中读取一些数据的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已经更新)。
答案 0 :(得分:1)
WebSecurity.Login设置一个cookie。在用户通过身份验证之前,框架必须重新读取该cookie,这意味着必须发生另一个Web请求。
换句话说,您必须重定向到另一个页面,否则必须先进入其他Web请求才能对请求进行身份验证。