2012-06-18 16 views
7

Im new to asp.mvc。従業員のデータを維持するためのポータルを開発しようとしています。私のシステムでは、「マネージャ」だけが従業員を作成するための厳格さを持っています。私はでたときに、リンクマネージャログを有効にし、従業員のログに。おかげロールに基づくリンクを非表示にする

マイビュー

@model IEnumerable<SealManagementPortal_3._0.Models.VOC_CUSTODIAN> 
@{ 
    ViewBag.Title = "List of Custodians"; 
} 
<h2>Index</h2> 
<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#list2").jqGrid({ 
      url: '@Url.Action("GridData", "Custodian")', 
      datatype: 'json', 
      mtype: 'GET', 
      colNames: ['Agent ID', 'Branch', 'Unique ID', 'Custodian Name', /*'NRIC No', 'E-Mail', 'Contact No', 'Mobile No',*/'Role', 'Details', 'Edit', 'Delete'], 
      colModel: [ 
       { name: 'Agent ID', index: '', width: 10, align: 'left' }, 
       { name: 'Branch', index: '', width: 10, align: 'left' }, 
       { name: 'Unique ID', index: '', width: 10, align: 'left' }, 
       { name: 'Custodian Name', index: '', width: 10, align: 'left' },     
       {name: 'Role', index: '', width: 10, align: 'left' }, 
       { name: 'Details', index: '', width: 5, align: 'left' }, 
       { name: 'Edit', index: '', width: 5, align: 'left' }, 
       { name: 'Delete', index: '', width: 5, align: 'left'}], 
      pager: jQuery('#pager2'), 
      rowNum: 10,     
      sortname: 'Id', 
      sortorder: "desc", 
      viewrecords: true, 
      autowidth: true, 
      caption: 'Custodians List' 
     }); 
    }); 
</script> 
@using (Html.BeginForm()) 
{ 
    <table id="list2" class="scroll" cellpadding="0" cellspacing="0"></table> 

答えて

15

あなたは役割を使用することができたときに無効にするにはどうすればよいです。 最初の、そして最も重要なことAuthorize属性でアップデートを実行すると、ユーザは、このコントローラのアクションにアクセスするために保有しなければならないことを正しいロールを指定することになっているコントローラのアクションを飾るためにある:

[HttpPost] 
[Authorize(Roles = "Managers")] 
public ActionResult Create(Employee emp) 
{ 
    ... 
} 

すべては、サーバー上のセキュリティで保護されたら、ビューで化粧品を行うことができ、ユーザーがManagers役割である場合にのみ、リンクを表示する:あなたは、フォーム認証の詳細については、following articleを見ても

@if (User.IsInRole("Managers")) 
{ 
    @Html.ActionLink("Create employee", "Create") 
} 

と役割。

+0

テンプレート内の「マネージャー」の繰り返しを避ける方法はありますか?私は1つの場所で役割管理をしたいと思っていて、Authorize属性は私と非常にうまくいきます。属性のコンテンツにアクセスするHtmlHelperを何とか定義できますか? –

関連する問題