Je souhaite stocker un ID utilisateur dans un cookie, dans ASP.NET Core MVC. Où puis-je y accéder?Récupérer l'ID utilisateur d'une revendication dans un cookie dans MVC de base
Login:
var claims = new List<Claim> {
new Claim(ClaimTypes.NameIdentifier, "testUserId")
};
var userIdentity = new ClaimsIdentity(claims, "webuser");
var userPrincipal = new ClaimsPrincipal(userIdentity);
HttpContext.Authentication.SignInAsync("Cookie", userPrincipal,
new AuthenticationProperties
{
AllowRefresh = false
});
Déconnexion:
User.Identity.GetUserId(); // <-- 'GetUserId()' doesn't exists!?
ClaimsPrincipal user = User;
var userName = user.Identity.Name; // <-- Is null.
HttpContext.Authentication.SignOutAsync("Cookie");
Il est possible dans MVC 5 ------------------ ->
Connexion:
// Create User Cookie
var claims = new List<Claim>{
new Claim(ClaimTypes.NameIdentifier, webUser.Sid)
};
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(
new AuthenticationProperties
{
AllowRefresh = true // TODO
},
new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie)
);
Get UserId:
public ActionResult TestUserId()
{
IPrincipal iPrincipalUser = User;
var userId = User.Identity.GetUserId(); // <-- Working
}
Mise à jour - capture d'écran Ajout des revendications qui sont nuls -------
userId
est également null
.
testerons plus tard. Mais je suis sûr que j'ai essayé "User.Claims" qui sont "null". Je ne sais pas pourquoi cependant :) – radbyx
C'est aussi nul. Je suis sûr que votre ligne est correcte, mais je dois avoir besoin d'autre chose, je suppose. Comme quelque chose dans StartUp.cs je n'ai pas encore ajouté. ASP.NET Core MVC est nouveau pour moi, donc je n'ai peut-être pas ajouté toutes les dépendances nécessaires, pour que Claims fonctionne. – radbyx
Voir la capture d'écran ajoutée :) – radbyx