2016-07-15 6 views
2

WebAPI 서비스를 만들고 있습니다. 방금 인증과 함께 ASP.NET WebAPI 템플릿을 사용했습니다. 이미 로그인 한 사용자에 대해 DB 엔터티 액세스를 어떻게 제한 할 수 있는지 궁금합니다. [Authorize]를 사용하여 내가 수행 한 권한이없는 사용자를 제한 할 수 있습니다. 로그인 후에 그들은 지금 아무거나에 접근 할 수있다. 예 : 나는 빌 테이블을 가지고있다. BillId를 사용하면 권한이 부여 된 사용자가 Bill 테이블의 항목에 액세스 할 수 있습니다. 이것을 제한하는 방법? 현재 빌 테이블은 UserIdentity 테이블과 관련이 없습니다 !!.WebAPI에서 DB 리소스에 대한 액세스를 제한하는 방법

+0

글쎄, 당신은 이미 무엇을 해야할지 알 것 같습니다. 당신이 의미하는 "권한"또는 "역할"에 대한 메커니즘을 만들어야합니다. 인증 된 각 사용자는 역할을 가져야하며 사용자가 무언가에 액세스하려고 할 때마다 권한에 대해 대결해야합니다. – jpgrassi

+0

@jpgrassi가 말했듯이, 당신은 아마도 역할 기반 접근을 원할 것입니다. 사용자가 역할을 수행하면 권한 부여 속성을'[Authorize (Roles = "whatever")]와 같이 확장 할 수 있습니다. – Crowcoder

+0

동일한 역할을 가진 두 명의 사용자가있는 경우 두 사람 모두 동일한 역할을하기 때문에 다른 사용자의 데이터에 모두 액세스 할 수 있습니다 . 이것을 어떻게 제한 할 수 있습니까? –

답변

0

시나리오에 대해 생각한 후 해결책이 있습니다. 내 모든 컨트롤러에서 나는 [인증 된 사용자의 ID] 사용자 ID를 얻을 수 있습니다. 사용자가 어떤 엔티티에 데이터를 추가 할 때, 나는 그 엔티티에 엔티티와 사용자 ID를 저장하는 열로 userid를 추가 할 것이다. 어떤 사용자가 자원을 찾으면, 그는 자신의 Userid 인 자원만을 얻습니다. 어떤 사용자 테이블과도 관계가 없지만 모든 엔티티에 새로운 컬럼으로 userid를 추가하는 것만으로도 충분합니다.

관련 문제