2016-07-15 17 views
2

WebAPIサービスを作成しています。私はちょうど認証でASP.NET WebAPIテンプレートを使用しました。私は既にログインしているユーザーのDBエンティティアクセスをどのように制限することができるのだろうかと思っていました。[Authorize]を使って、私が行った権限のないユーザーを制限することができます。ログイン後、今すぐ何でもアクセスできます。例:私はテーブルビールを持っています。 BillIdを使用すると、許可されたユーザーはBillテーブルの任意のエントリにアクセスできます。これを制限する方法は?現在、BillテーブルはUserIdentityテーブルとは関係ありません!!WebAPIのDBリソースへのアクセスを制限する方法

+0

あなたはすでに何をすべきか分かっているようです。あなたが意味する場合、 "権限"または "役割"のためのメカニズムを作成する必要があります。認証された各ユーザーにはロールが必要で、ユーザーが何かにアクセスしたい場合は、そのアクセス許可に対抗する必要があります。 – jpgrassi

+0

@jpgrassiによれば、おそらくロールベースのアクセスが必要です。ユーザがロールに入ると、 '[Authorize(Roles =" whatever ")]'のようなauthorize属性を拡張することができます。 – Crowcoder

+0

同じロールを持つ2人のユーザがいる場合、両者は同じ役割を果たすため、 。どのようにこれを制限できますか? –

答えて

0

シナリオを考えた後、解決策があります。[よく分からない]私のすべてのコントローラで、私はUserid [Authenticated user's id]を取得できます。ユーザーが任意のエンティティにデータを追加すると、そのエンティティとストアのユーザーIDに列としてuseridが追加されます。どのユーザーがリソースを探す場合、ユーザーIDのリソースだけを取得します。私は、すべてのエンティティに新しい列としてuseridを追加するだけで、任意のユーザーテーブルに関係はありません。

関連する問題