2011-05-03 107 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