2017-04-24 22 views
-1

私は何らかの問題に直面しています。だから、私はテーブルを持っています。この表には20の列があります。フィールドごとに、またすべてのユーザーに対して、許可(追加、編集、表示)を許可したいと思います。私はそのようなことをしました。asp.net mvcの列ごとのアクセス許可

私のテーブル

  1. 同上
  2. 名前
  3. 地域(ある20個の列が含まれています)
  4. PeopleCount

をCityId .... ..(フィールドa例)

Userテーブル

  1. ID、
  2. 名前

......

注RE:私の表の列名は、このテーブル

であります

ColumnNamesテーブル

  1. 同上
  2. 名前

アクション

  1. 同上
  2. 名(...編集することができ、追加することができます)

AssosiationBetweenUserMyTableAction

  1. ユーザーID
  2. ColumnNamesId
  3. 私は元のために、私は列ごとに許可ユーザーを与えることができるようにしたい新しいユーザー(フィールド) を追加すると

をたAction。

どうすればいいですか?

enter image description here

+1

あなたのコードを投稿していただけますか? –

+0

@BasantaMatia私はそれについて考えています –

+0

私の腹を立てる提案を確認してください –

答えて

0

があなたのテーブルにフィールドを編集できます追加できを追加する必要はありません。

ユーザーが編集ボタンをクリックしたときに編集可能なフィールドを表示するだけで、が無効になります。はユーザーが変更できないようにします。

しかし、特定のユーザーに追加、編集、または表示を許可する場合は、ロールベースを使用することをお勧めします。 許可表を作成します。追加、編集、表示、削除などのメタやデフォルトのレコードを保存してから、のロールテーブルの許可テーブルのテーブルを作成します。たとえば、RolePermissionMappingテーブルです。したがって、新規ユーザーを追加する場合は、ここに許可を渡してください。そのためには、ビューのAdd、Edit、Viewの3つのチェックボックスを作成する必要があります。また、これらの3つのフィールドをモデルに追加します。次に、コントローラメソッドで、これらのデータをRolePermissionMappingテーブルに挿入できます。

これで、htmlコードでデータをレンダリングする前に、ユーザー権限を検証するだけです。例えば

//In your Razor code 
@if(Model.IsEdit) 
    { 
    //show your edit button else hide that 
    } 

は、その後、ユーザが編集ボタンをクリックしながら、ちょうど、更新するこれらのフィールドを表示し、あなたがそれらを無効にすることができ休みます。

希望します。

+1

あなたの答えはありがとうございますが、私はテーブルではないすべてのフィールドのためにそれをしなければなりません –

+0

それは私がすでに私の答えで述べたものです、 、Region、Countryなど)、残りの部分をHTMLコントロールで無効にして(たとえばId)、ユーザーは変更できません –

関連する問題