【发布时间】:2013-06-22 19:04:29
【问题描述】:
我有一个包含以下代码的母版页:
<body>
<form id="form1" runat="server">
<!-- BEGIN: Sticky Header -->
<div id="header_container">
<div id="header">
<div id="headerBar">
<a href="<% = Page.ResolveUrl("~/default.aspx") %>">
<img src="<% = Page.ResolveUrl("~/images/logo.png") %>" id="logo" /></a> <span id="header_text">
Scrum Reports</span>
<asp:LoginStatus ID="LoginStatus1" runat="server" CssClass="login_status" LogoutAction="Redirect"
LogoutPageUrl="~/default.aspx" />
<asp:LoginName ID="LoginName1" runat="server" CssClass="login_user" />
</div>
</div>
</div>
<div id="menuBar">
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2"
Orientation="Horizontal" >
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" SiteMapProvider="admin" runat="server" />
<asp:SiteMapDataSource ID="SiteMapDataSource2" SiteMapProvider="user" runat="server" />
</div>
<!-- END: Sticky Header -->
<!-- BEGIN: Page Content -->
<div id="mainContent">
<div id="container">
<div id="content">
<asp:ContentPlaceHolder ID="Main" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</div>
<!-- END: Page Content -->
<!-- BEGIN: Sticky Footer -->
<div id="footer_container">
<div id="footer">
Developed by Application Solutions
</div>
</div>
<!-- END: Sticky Footer -->
</form>
</body>
现在我使用以下 C#(作为母版页 Page_Load 方法的一部分)根据用户是否登录来显示或隐藏站点菜单:
Menu1.Visible = Page.User.Identity.IsAuthenticated;
由于某种原因,这行代码会阻止用户未登录时在其他页面上看到内容。
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/master/template.master" CodeFile="recoverpassword.aspx.cs" Inherits="password_recoverpassword" %>
<asp:Content ID="Content1" Visible="true" ContentPlaceHolderID="Main" runat="Server">
<div>
Cant see this content when not logged in.
</div>
</asp:Content>
为什么会这样?我能做些什么呢?
【问题讨论】:
-
recoverpassword.aspx.cs的代码隐藏是什么? -
文件为空。我没有添加任何代码。
-
也许你在某处有这样的代码(错字):“Main.Visible = Page.User.Identity.IsAuthenticated;”
-
我已经检查过了,事实上如果我把 Main.Visible = true;直接在 Menu1.Visible = Page.User.Identity.IsAuthenticated 之后;我有同样的结果。
标签: c# html asp.net visual-studio