0

나는 Asp.Net Identity 주위에 내 머리를 감싸려고 노력하고있다. 하지만 유감스럽게도 사용 가능한 문서가 명확하지 않거나 머리에 이상하다고 느낍니다. (언제 Asp.Net ID가 생성되어 사용자에게 할당됩니까?

그러나 하루 종일 조사 및 읽기를 기반으로 한 높은 수준의 이해는 사용자가 로그인하면 소유권 주장이 제공됩니다.이 소유권 주장을 사용하면 기능을 사용/사용 중지 할 수 있습니다. 예를 들어 사용자가 30 세라고 주장하면 성인용 콘텐츠를 볼 수 있도록 허용하지만 17 세라고 주장하면 액세스를 거부합니다. 그/그녀 :). 또한 "Admin", "Super Users"...와 같은 사용자 역할은 액세스를 활성화/비활성화하는 데 사용할 수 있습니다. "Admin"역할을 가진 사용자는 사용자가 X 작업 방법에 액세스하도록 허용 할 수 있습니다.

그러나 나에게 혼란을주고 내 머리를 분명히 감쌀 수없는 일이 많이 있습니다.

시나리오 내가 하나의 컨트롤러와 새로운 응용 프로그램을 만들려는 가정합니다. 이 컨트롤러에는 두 가지 동작 방법 AddEdit이 있습니다. 나는 각 사용자에게 식 (10)와 사용자 "가 추가 할 수 있습니다"이 경우

new Claim { UserId = 10, ClaimType = "Can Add", ClaimValue = null }, new Claim { UserId = 10, ClaimType = "Can Edit", ClaimValue = null } new Claim { UserId = 5, ClaimType = "Can Edit", ClaimValue = null } 

두 가지 주장을해야하고 "편집 가능"하지만 사용자 아이디와 사용자가 = 5 "추가 할 수있다"고 추측하고있다 by은 (는) 편집 할 수 없습니다.

이러한 소유권 주장은 언제 만들어지고 사용자에게 할당됩니까? AspNetUserClaims 테이블에 수동으로 삽입하여 필요에 따라 이러한 소유권 주장을 생성합니까? 프로필에서 사용자에게 할당합니까?

향후 새로운 클레임을 추가해야하는 경우 어떻게해야합니까?이 새로운 클레임을 수동으로 모든 사용자에게 수동으로 할당해야합니까? 또는 사용자가 상속 할 수있는 기본 역할에 이러한 클레임을 할당하는 방법이 있습니까?

위대한 질문은 아니지만 대답을 통해 ID를 더 잘 이해할 수 있습니다.

답변

1

사용자가 로그인 할 때 클레임을 설정해야합니다. 데이터베이스에 직접 설정하지 마십시오. 소유권 주장 설정시기를 이해하려면 this post을 참조하십시오.

클레임은 사용자에 대한 정보입니다. 그런 다음 해당 정보를 권한 부여 (또는 다른 용도)에 사용할 수 있습니다.

항상 값을 Claims으로 설정해야합니다. 그렇지 않으면 존재하지 않는 소유권 주장 오류가 발생할 수 있습니다.

+0

나는 더 혼란 스럽다. 소유권 주장은 일시적이며 단일 세션에서만 사용할 수 있습니까, 아니면 영구적입니까? 대합 조개는 사용자 이름, 이메일, 전화 .... 또는 내가 할 수있는 작업/액세스 권한이 X 작업을 수행 할 수 있는지 또는 둘 다 알 수있는 장소와 같은 사용자 정보를 얻을 수있는 장소입니까? 어떤 이유로 나는 권한 패키지가 권한 기반 승인을 지원하지 않을 수도 있다고 생각하기 시작했습니다. 이건 내가 구현할 필요가 있고 어떻게 든 권한을 가져 와서 하나의 커스텀 클레임에 포함시키는 것입니까? – Jaylen

+0

인증은 클레임을 기반으로하지 않습니다 (원하는 경우 ClaimAuthorizationAttribute를 만들 수 있지만 기본적으로 프레임 워크에는 없습니다). 사용자 이름, 이메일 또는 전화를 영구적으로 저장하려면 사용자에게 저장하십시오. 데이터를 사용자에게 저장하십시오. 계산 된 필드가 필요하거나 사방에 정보가 필요한 경우 소유권 주장을 사용하십시오. 소유권 주장은 사용자가 아닌 신원에 속한다는 점을 명심하십시오. –

+0

나는 본다. 정보를 가져 주셔서 감사합니다. 마지막 질문 몇 개를 마친 후 일시적으로 소유권을 주장합니까? 그렇다면 데이터베이스에서 언제 제거됩니까?또한 역할 기반 인증은 사용 가능한 유일한 인증 기능입니까? Authorize (정책 = "무언가") 란 무엇입니까? 당신이 지금까지 제공 한 정보에 대해 다시 한 번 감사 드리며 많은 아이디어를 이해하는 데 도움이됩니다. – Jaylen

관련 문제