0

Mon proxy SSO développé par asp.net core 1.1 et quelques applications client également développées par core 1.1 fonctionnent correctement. Si j'essaie de mettre en œuvre l'application client développée 4.5.2, elle s'est authentifiée avec succès, mais lorsque j'essaie de récupérer le nom d'utilisateur, j'ai rencontré ce problème.User.Identity.Name Renvoie null

Mon code:

[Authorize] 
public ActionResult Index() 
{ 
    ClaimsPrincipal icp = Thread.CurrentPrincipal as ClaimsPrincipal; 
    // Access IClaimsIdentity which contains claims 
    ClaimsIdentity claimsIdentity = (ClaimsIdentity)icp.Identity; 
    Response.Write("User Name:"+ User.Identity.Name + "<br>"); 
    // Access claims 
    foreach (Claim claim in claimsIdentity.Claims) 
    { 
     Response.Write(claim.Type+"<br>"); 
     Response.Write(claim.Value + "<br>"); 
     Response.Write(claim.ValueType + "<br>"); 
    } 
    return View(); 
} 

Répondre

0

Utilisation User.Identity.GetUserId() au lieu de User.Identity.Name

+0

System.Security.Principal n'ont User.Identity.Name, pas la méthode GetUserID() –