2017-03-14 3 views
0

클레임 기반 사용자 역할 인증을하고 있습니다.UniqueClaimTypeIdentifier 정확하게 무엇이 일어나고 있습니까?

var identity = new ClaimsIdentity(new[] { 
       new Claim(ClaimTypes.Name, name), 
       new Claim(ClaimTypes.Email, email), 
       new Claim(ClaimTypes.StreetAddress, Address), 
       new Claim(ClaimTypes.Role, "Admin") 
}, 

내 인증이 잘 작동하지만, 나는 사용자가 설정 한 역할을 변조 할 수있는 방지하기 위해 보안의 어떤 종류를 구현해야 실현이 인증을 위해 나는 다음 테스트.

AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Email; 

내가 정확히이 코드는 위의 무엇을 이해하는 수없는 것 :

그러므로 나는이 Global.asax에 추가 할 예정이다,이 우연히 발견? 맞습니까? 내가 말하면 사용자가 보유한 쿠키 인 email에서 만든 고유 한 토큰이 시스템에서 사용자의 정당성을 확인하는 데 사용됩니다. 이 새로운 방법에 의해, 그래서, 당신은 귀하의 질문에 의해 의미하는지 확실히 확실하지 않다

답변

0

:-) 나를 쉽게 이동하지만, 나에게 몇 가지를 취소하려고하자

임 .

먼저 AntiForgeryConfig 코드 줄에 대해 이야기 해 보겠습니다. 이는 AntiForgeryTokenEmail 클레임을 사용하여 요청을 식별 (이메일을 기반으로 토큰 생성)하도록 구성합니다. AntiForgeryToken을 사용하면 요청을 신뢰하고 CSRF (교차 사이트 요청 위조)를 방지 할 수 있습니다.

2 부분으로 구현됩니다. 먼저 AntiForgeryToken을 양식 (@Html.AntiForgeryToken)에 추가해야합니다. 둘째, 컨트롤러의 동작에서 토큰의 유효성을 검사해야합니다 (ValidateAntiForgeryTokenAttribute). 보조 노트로

Here is a link with up to date code how to implement it

Here is a link to explain what CSRF

, 당신은 ... to avoid that the user can tamper the set role 말했다. AntiForgeryToken은 변조 된 역할에 대해서는 아무 것도하지 않습니다. 변조 작업은 인증 프로세스와 관련이 있습니다.

+0

대단히 감사합니다. –