WebSecurity.CurrentUserId = -1

Je développe une application Android qui devrait se connecter / s’inscrire et lire certaines données de la firebase database.

J’ai le contrôleur de connexion WebApi .

et c’est mon problème

[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 ... } 

Pourquoi, après une connexion réussie, j’ai toujours -1 comme valeur?

J’ai remarqué que même dans le projet MVC, la même chose se produit, mais après la connexion réussie, l’utilisateur est redirigé vers une autre page où les données sont répertoriées (lorsque ce contrôleur est exécuté, l’ID utilisateur actuel est déjà mis à jour).

WebSecurity.Login définit un cookie. Ce cookie doit être relu par la structure avant que l’utilisateur ne soit authentifié, ce qui signifie qu’une autre requête Web doit avoir lieu.

En d’autres termes, vous devez redirect vers une autre page, ou une autre demande Web doit arriver avant que la demande ne soit authentifiée.