2017-06-20 3 views
0

私はMVC WebAppを使用して、私のアプリケーションにAzure AD Rolesを正常に認証しています。その役割に基づいて、_Layout.cshtmlファイルの 'about'などのようなnavbarタブを表示または非表示にするにはどうすればよいですか?MVC Webapp Azure AD RolesのWebサイトのタブを隠す/表示する

コントローラーのページにという権限を付与できますが、navbarレベルで非表示にしたいとします。このダイナミックを作るために私は何行目のコードを欠いていますか?助けを事前に

 <div class="navbar-header"> 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      @Html.ActionLink("My Project", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) 
     </div> 
     <div class="navbar-collapse collapse"> 
      <ul class="nav navbar-nav"> 
       <li>@Html.ActionLink("Home", "Index", "Home")</li> 
       <li>@Html.ActionLink("About", "About", "Home")</li> 
       <li>@Html.ActionLink("Contact", "Contact", "Home")</li> 
      </ul> 
      @Html.Partial("_LoginPartial") 
     </div> 

ありがとう:ここ

は、私はこれを実現するために探しています私の_Layout.cshtmlファイル内のコードです!

答えて

1

MVCには、ログされたユーザーに関する情報を提供するUserオブジェクトがあります。ちょうどUser.IsInRole(roleName)メソッドを使用して、それは動作するはずです。

例:

<div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
     @Html.ActionLink("My Project", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) 
    </div> 
    <div class="navbar-collapse collapse"> 
     <ul class="nav navbar-nav"> 
      <li>@Html.ActionLink("Home", "Index", "Home")</li> 
      <li>@Html.ActionLink("About", "About", "Home")</li> 
      @if(User.IsInRole("Admin")) 
      { 
       //Only the user with "Admin" role can see this 
       <li>@Html.ActionLink("Contact", "Contact", "Home")</li> 
      } 
     </ul> 
     @Html.Partial("_LoginPartial") 
    </div> 
+1

は完全に働きました!速やかなご返信ありがとうございます。 – Alex

+0

喜んで助けてください。正しい答えを確認してください。同じ問題を抱える他の人がこの答えを見つけやすくなります。 –

関連する問題