2013-03-09 4 views
1

최근에 Breezej를 조사하기 시작했습니다. 여러 고객이 사용할 시스템에서 한 고객 데이터를 다른 고객에게 공개 할 수 없습니다. Breezejs는이를 구현하기위한 표준/권장 방법을 어떻게 보장합니까?엔티티에 대한 액세스를 제한하는 Breezejs

내 엔티티 특성 및 ID

고객, 이름있는 말

내가 세션에서 고객 ID를 계속 등록 아이디, 이메일, 고객 ID

등록 된 이메일 때, 나는 돈 사용자가 로그인 ' 내 UI의 사용자가 고객 ID를 보낼 수 있도록 허용하지만 요청을 작성하고 다른 고객 정보에 액세스하는 악의적 인 사용자를 어떻게 막을 수 있습니까?

답변

1

가장 간단한 방법은 고객 ID 제한이있는 서버에서 IQueryables를 반환하는 것입니다. 다음과 같은 내용 :

[BreezeController] 
public class NorthwindIBModelController : ApiController { 
    ... 
    // initialize this from your session data 
    private var currentCustomerId; 

    [HttpGet] 
    public IQueryable<Customer> Customers() { 
    return ContextProvider.Context.Customers.Where(cust => cust.Id == currentCustomerId); 
    } 

    [HttpGet] 
    public IQueryable<Email> RegisteredEmails() { 
    return ContextProvider.Context.Emails.Where(email => email.CustomerId == currentCustomerId); 
    } 
} 

의미가 있습니까?

0

확실히 가장 간단하지만 저장하는 동안이 쿼리가 고려되지 않기 때문에 동일한 제한된 항목을 삭제/업데이트하는 사람을 보호 할 방법이 없습니다. EntityType 만 SaveChanges로 보내집니다.

관련 문제