0

인증을 위해 ASP.NET ID를 사용하는 기존 MVC 웹 응용 프로그램을 확장하려고합니다. 현재 로그온 한 사용자의 사용자 이름을 얻으려면 System.Web.HttpContext.Current.User.Identity.Name을 사용합니다.ASP.NET ID와 OWIN 인증을 Azure에 통합 할 때 User.Identity.Name이 null입니다. B2C

예제 코드를 사용하여 OWIN 인증으로 전환하면 hereName 속성이 null이며 이로 인해 기존 응용 프로그램에서 오류가 발생합니다. 신원을 무효화하지 않고 IIdentity.Name의 값을 변경할 수 있습니까?

the referenced tutorial의 맨 아래에 설명 된 바와 같이
+0

확실하지하지만 그것은하지 않습니다 더 이상'null'이 되십시오 :) 이전에 보셨던 것처럼 그것은'username'이 아닙니다. – spottedmahn

답변

1

, 당신은 그런대로 ClaimsPrincipal.Current 객체를 통해 사용자 요구에 액세스해야합니다 응용 프로그램에서`디스플레이 Name`을 반환하는 경우 주장

// Controllers\HomeController.cs 

[Authorize] 
public ActionResult Claims() 
{ 
    Claim displayName = ClaimsPrincipal.Current.FindFirst(ClaimsPrincipal.Current.Identities.First().NameClaimType); 
    ViewBag.DisplayName = displayName != null ? displayName.Value : string.Empty; 
    return View(); 
} 
관련 문제