2016-08-24 5 views
3

내부의 주장을 얻기 위해 내가 좋아하는 내 RC1 프로젝트에서 그것을 어떻게 :Asp.Net 코어 면도기보기

User.Claims.ElementAt(#).Value 

하지만 RTM으로 전환 후에는 더 이상 작동하지 않을 것입니다. Razor보기를 디버깅 할 때 객체는 같지만 User.Claims는 비어 있습니다. 그 이유는 무엇인지 알 수 있습니다.

+0

가 나는 문제를 발견했다. 내가 쿠키를 설정하는 줄에 오타가 있었다 : HttpContext.Authentication.SignInAsync ("typo here", 새로운 ClaimsPrincipal (auth)) ;. 불필요한 일하는 사람들을 유감스럽게 생각합니다. – Sknecht

+0

JDupont의 대답처럼 클레임 유형을 사용하고 싶을 수도 있습니다. – juunas

+1

시스템에서 클레임을 삭제하면 이미 범위를 벗어났습니다. 그것은 이미 이사회의 임무이지만 그것에 제트로 돌아선 적이 없습니다. – Sknecht

답변

7

현재 주체에 클레임이 연결되어 있다고 가정합니다. 면도기보기에서 :

@((ClaimsIdentity) User.Identity) 

이렇게하면 현재 사용자의 ClaimsIdentity에 액세스 할 수 있습니다. 클레임을 깨끗하게 유지하기 위해 클레임을 검색하기위한 확장 방법을 만들 수 있습니다. 이 도움이

@((ClaimsIdentity) User.Identity).GetSpecificClaim("someclaimtype") 

희망 :

public static string GetSpecificClaim(this ClaimsIdentity claimsIdentity, string claimType) 
{ 
    var claim = claimsIdentity.Claims.FirstOrDefault(x => x.Type == claimType); 

    return (claim != null) ? claim.Value : string.Empty; 
} 

그런 다음 당신은 당신이 원하는대로 청구에 액세스 할 수 있습니다. 면도기보기에서 주장 정체성에 대한

빠른 검색은 비슷한 질문과 답변을 내놓았다 : MVC 5 Access Claims Identity User Data