2010-07-16 5 views
9

Soy nuevo en ASP.NET MVC y estoy usando la versión 1.0 del framework. Tengo una página Site.Master con el siguiente menú codificado-Mostrar elemento de menú solo para usuarios que han iniciado sesión

<div id="menucontainer"> 
    <ul id="menu">    
    <li><%= Html.ActionLink("Home", "Index", "Home")%></li> 
    <li><%= Html.ActionLink("Drivers", "List/?category=Drivers", "Product")%></li> 
    <li><%= Html.ActionLink("Irons", "List/?category=Irons", "Product") %></li> 
    <li><%= Html.ActionLink("Wedges", "List/?category=Wedges", "Product") %></li> 
    <li><%= Html.ActionLink("Putters", "List/?category=Putters", "Product") %></li> 
    </ul> 
</div> 

Quiero mostrar un elemento adicional en el menú sólo si los usuarios se registran en. Algo así como "Ver mis listados". Tengo hacer esto de una manera hacky sucia ningún problema por lo que he intentado

<% if (User.Identity.IsAuthenticated) ... 

pero User no es válida en este contexto. Mi pregunta es cómo mostrar un elemento de menú adicional solo si los usuarios inician sesión.

+1

Uso HttpContext.User.Identity.IsAuthenticated en mi vista para administrar los elementos del menú. – Nate

+0

¿Cuál es la diferencia entre utilizar HttpContext.User.Identity.IsAuthenticated, Context.User.Identity.IsAuthenticated y Request.IsAuthenticated ?? –

Respuesta

11

Se puede acceder al objeto Usuario a través del objeto Contexto:

<% if(Context.User.Identity.IsAuthenticated) ... 
9

Yo también acabo de descubrir que podía usar

<% if (Request.IsAuthenticated) { %> 
    <li><%= Html.ActionLink("View my Listings", "MyListings", "List")%> 
<% } %> 
+0

funciona en MVC 5 para mí. Recién reemplazado con la sintaxis de Razor (@). – JustJohn

5

para MVC 4+ Lo hacemos así:

@if(Context.User.Identity.IsAuthenticated) { 
    <li> @Html.ActionLink(... 
    } 
Cuestiones relacionadas