1

最近、Breezejs の調査を開始しました。複数の顧客が使用するシステムに取り組んでいますが、ある顧客データを別の顧客データに公開することはできません。Breezejs はどのようにそれを保証しますか、またはこれを実装する標準/推奨方法は何ですか。

私のエンティティが

プロパティID、名前を持つ顧客

プロパティ Id、Email、CustomerId を持つ登録済みメール

ユーザーがログインするときに CustomerId をセッションに保持します。UI でユーザーが顧客 ID を送信することを許可していませんが、悪意のあるユーザーがリクエストを手作りして他の顧客情報にアクセスするのを防ぐにはどうすればよいですか?

4

2 に答える 2

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);
  }
}

これは理にかなっていますか?

于 2013-03-10T05:22:57.563 に答える