2011-05-03 108 views
0

我正在使用内置的登录名ASP.NET MVC应用程序。此页面还有2个菜单项,用户无需登录即可访问。Asp.net内置登录隐藏菜单

我的要求是,用户应该能够直到他登录进入任何菜单项的,所以无论是我需要隐藏菜单项或禁用它的点击次数,直到用户已经登录。

我怎样才能做到这一点?

+0

问题是菜单栏链接在ASP几页。净MVC和很少在Asp.net中...菜单栏链接到MVC中的几个页面,很少在asp.net中...对于MVC我可以通过[Authorize]控制它,但是如何控制asp.net的链接 – 2011-05-03 22:02:25

回答

0

如果你使用的剃刀视图,那么你可以使用这样的事情:

@if(Request.IsAuthenticated) { 
    <span><a href="#">@user.ShortName</a></span> 
    <text> 
    @Html.ActionLink("My Profile", "profile", "account") | 
    @Html.ActionLink("Help", "index", "help") | 
    @Html.ActionLink("Log Off", "LogOff", "Account") 
    </text> 
} 

的@if中的代码{...}块是,如果用户登录,你会显示什么。

WebForms(.aspx)视图有相当的代码,您可以通过多种方式进行操作。

一种方法是从代码隐藏和操作服务器控件。所以,你的.aspx页面中就会有这样的事情:

<asp:HyperLink ID="lnkMyProfile" Text="My Profile" NavigateUrl="/myprofile"></asp:HyperLink> 

然后在你的代码隐藏(.aspx.cs为例):

if(User.Identity.IsAuthenticated) { 
    lnkMyProfile.Visible = true; 
} else { 
    lnkMyProfile.Visible = false; 
} 
+0

没有这对我没有工作...... :( – 2011-05-03 22:00:24

+0

问题是我有几个页面在ASP.net MVC和几个在Asp.net中...菜单栏链接到MVC中的几个页面,很少在asp.net .. 。对于MVC我可以通过[Authorize]来控制它,但是如何控制链接为asp.net – 2011-05-03 22:01:52