2016-11-22 2 views
0

ich User.IsInRole("Admin") in meinem Razor _layout.cshtml Seite bin mit der Rolle von authentifizierten Benutzern zu überprüfen und das Menü entsprechend anzuzeigen. Im Folgenden ist der Code, ich verwende:User.IsInRole („Admin“) nicht Identität arbeiten 2,0

@if (Request.IsAuthenticated && User.IsInRole("Admin")) 
      { 
       <li class="@Html.RouteIf("index", "active")"> 
        <a href="@Url.Action("Dashboard", "home")" title="Dashboard"><i class="fa fa-lg fa-fw fa-dashboard"></i><span class="menu-item-parent">Analytics Dashboard</span></a> 
       </li> 
} 

Das Problem ist jetzt, dass der Server-Betreiber in die Systeme erfolgreich angemeldet ist, aber keine Verbindung wird im Menü angezeigt.

Während Googeln dieses Problem, das ich die folgenden Änderungen in meinem web.config

<system.web> 
    <roleManager enabled="true" /> 
    </system.web> 

und in

<remove name="RoleManager" /> 

Jede Hilfe ist willkommen gemacht haben!

Antwort

0

statt

@if (Request.IsAuthenticated && User.IsInRole("Supervisor")) 
{ 
} 

i verwenden

PartialView in _Layout.cshtml

<li>@Html.Partial("_SupervisorPartial")</li> 

und es funktioniert jetzt.

@using Microsoft.AspNet.Identity 
@using System.Web.Security; 
@if (Request.IsAuthenticated) 
{ 
    var manager = new UserManager<IdentitySample.Models.ApplicationUser> (new Microsoft.AspNet.Identity.EntityFramework.UserStore<IdentitySample.Models.ApplicationUser> (new IdentitySample.Models.ApplicationDbContext())); 
    var user = manager.FindById(User.Identity.GetUserId()); 
    if (user != null && manager.IsInRole(user.Id, "Supervisor")) 
    { 
     using (Html.BeginForm()) 
     { //your code 
     } 
    } 
} 
Verwandte Themen