나는 당신이 걱정의 분리를 유지해야한다는 것을 이해합니다. 동일한 컨텍스트를 공유하지 않는 테이블간에 관계를 가져서는 안됩니다. 이것은 자동차가 결코 AspNetUsers에 링크 할 수 없다는 것을 의미합니다.
그것은 개체와 필드의 의미에 관한 것입니다. 예를 들어, IdentityUser와 CustomUser는 동일하지만 보이지 않습니다. IdentityUser에는 CustomUser가 사용자 지정 모델에 필요한 모든 정보가있는 사용자를 식별하는 데 필요한 모든 정보가 있습니다. 사실, 로그인 계정이없는 CustomUsers를 가질 수 있습니다.
이메일 주소도 고려하십시오. 두 입력란 모두에서이 입력란을 사용하는 것은 불필요한 것으로 보이지만 맞춤 이메일 주소에 대한 업데이트를 받고 싶을 때 실제로 내 Google 계정을 사용하여 로그인 할 수 있습니다.
그래서 CreatedBy 필드의 의미는 무엇이며 어떻게 사용할 예정입니까? 보고서와 같이 맞춤 문맥의 일부인 경우 CustomUser 테이블이 있어야하며 해당 테이블과 관련이 있어야합니다. 사용자 이름을 저장하는 것보다 관리 목적으로이 항목을 확인하기 만하면됩니다. 당신은 그 분야별로 질문 할 것입니까? CustomUserAddress와 같은 추가 정보가 필요합니까?
잘 수행되면 중복 필드가 실제로 있다고 생각하지 않습니다. 그들 모두는 다른 목적/의미를 가지고 있기 때문에.
어쨌든 당신은 문맥을 넘어서고 싶지 않습니다. 그리고 다른 컨텍스트에서 정보를 검색하기 위해 id 목록을 보내는 것을 원하지 않습니다.
문제는 현재 사용자를 연결하려는 것입니다. ID 토큰은 사용자를 식별하는 데 사용됩니다. 이는 귀하의 리소스에 아무런 의미가 없습니다. 그러나 액세스 토큰에는 자원의 실제 사용자에 대한 정보가 들어 있습니다.
권한 부여를 리소스에 가깝게 유지하면 CustomUserId를 사용하여 권한 부여 사용자를 확장 할 수 있습니다. 이 정보는 권한 부여의 일부이므로 액세스 토큰에 추가하십시오. 사용자가 지정된 사용자의 데이터에만 액세스 할 수 있음을 리소스에 알립니다.
[access token] .customUserId를 사용하면 CustomUser와 일치시킬 수 있습니다. 따라서 CreatedBy는 CustomUser.Id 값을 가져야합니다. https://leastprivilege.com/2016/12/16/identity-vs-permissions/
그래서 두 개의 컨텍스트, 정체성에 대해 하나의 사용자 정의 테이블에 대한 하나가 :
나는이 기사를 추천 하시겠습니까? 데이터베이스의 사용자 테이블을 사용하면 AspNetUsers 테이블을 의미합니까? 또한 사용자 정의 컨텍스트에 users 테이블이 있습니까? –
예 사용자 정의 컨텍스트에서 사용자 테이블이 있지만 사용자 지정 테이블과 연결해야하기 때문에 추가했습니다.나는 어떻게 든 중복없이 한 곳에 보관하고 싶다. 너 내가 무슨 뜻인지 알지. AspNetUsers 테이블과 연결되어있는 사용자 정의 테이블 자동차를 만들면 링크를 만들어야할지, 아니면 일반 필드 CreatedBy를 만들고 User.Identity.Name을 사용하여 해당 사용자 정의 테이블을 채울 수 있습니까? 어느 사용자가 AspNetUsers로 자동차를 만들었는지 추측하고 싶습니다. 자동차 테이블 USERID를 얻고 aspnetUsers를 USERID로 쿼리하면됩니다. 내가 뭐라는지 알 겠어? –