MVC 3の特定のフィールドで権限を設定することはできますか?特定のASP .NET MVC 3フィールドの認可を設定していますか?
私の最初の思想(とMSDNの研究)は、[Authorize]タグがコントローラレベルのアクション(作成、編集、インデックスなど)のみに使用されていることを示しています。コントローラーアクションでこれを行うことができます。
2つの役割(RoleAとRoleB)が「編集」コントローラーにアクセスできるというシナリオです。しかし、RoleAだけが最初のフィールドを変更できます。他の役割(B)は、フィールドのみを表示できます。
私は特定の分野でこのような何かをしたいと思います:
[Required]
[Range(1, 99)]
[Authorize(Roles = "RoleA")]
public int Sequence { get; set; }
UPDATE1:
StackOverflowのウサギの役割ダウンもう少し研究は、私は部分的なビューを使用する必要があることが明らかになりました。ユーザーは、彼らが「配列」フィールドの編集を可能にする部分図を得るRoleAであれば
<div>
@if (Context.User.IsInRole("RoleA"))
{
@Html.Partial("_SequenceEdit")
}
else
{
@Html.Partial("_SequenceView")
}
</div>
:
だから私の見解で、私はこのコードを追加します。それ以外の場合は、「シーケンス」フィールドのみの表示が得られます。
マイビューのみ部分図は次のようになります。
私はあなたがすでにロールB.しかし、あなたのユーザーにテキストボックスを表示しないようにするためにビューを変更する方法を考え出したことがわかり<div class="editor-label">
@Html.LabelFor(model => model.Sequence)
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.Sequence)
@Html.HiddenFor(model => model.Sequence)
@Html.ValidationMessageFor(model => model.Sequence)
</div>
は、あなたがそれを試みたことがありますか? –
申し訳ありませんが、MVC 3フィールドはどういう意味ですか?あなたは特定のアクションに対して[Authorize]を設定することを意味しますか?または、RoleBが変更できないようにするローカル変数(フィールド) – mfanto
@JamieDixon - どこに試して入れていいのかわかりません。私はそれがコントローラに入るかもしれないと推測していますが、フィールド固有のビュー/モデルです。 –