我正在做一个学校项目。我能够成功登录用户注册。但是当他/她隐身时,我如何隐藏Login
和Register
页面链接。我正在使用css
和<ul>
。在sign-out
之后我怎样才能再次显示它们
以下是MasterPage
<td id="tabs2" style="width:190px">
<ul id="logreg">
<li><a href="Login.aspx" ><span>LogIn</span></a></li>
<li><a href="Registration.aspx"><span>Register</span></a>
</li>
</ul>
</td>
我怎样才能像按钮一样使用标签SignOut
。
答案 0 :(得分:4)
另一个选择是只检查Request.IsAuthenticated
<% if(!HttpContext.Current.Request.IsAuthenticated) { %>
<ul id="logreg">
<li><a href="Login.aspx" ><span>LogIn</span></a></li>
<li><a href="Registration.aspx"><span>Register</span></a></li>
</ul>
<% } else { %>
// Show a logout button
<% } %>
答案 1 :(得分:4)
将元素包装在placeholder
控件中,并根据会话状态设置Visible
属性。
<td id="tabs2" style="width:190px">
<ul id="logreg">
<asp:placeholder id="NotLoggedInPH" runat="server">
<li><a href="Login.aspx" ><span>LogIn</span></a></li>
<li><a href="Registration.aspx"><span>Register</span></li></a>
</asp:placeholder>
<asp:placeholder id="LoggedInPH" runat="server" visible="false">
<li><asp:HyperLink id="btnLogout" runat="server"><span>Logout</span></asp:HyperLink></li>
</asp:placeholder>
</ul>
</td>
然后在Page_Load
:
if (!(session["sessionName"])){
NotLoggedInPH.visible = false;
LoggedInPH.visible= true;
}
答案 2 :(得分:2)
我建议使用LoginView
控件和Forms Auth
,但这里有一些方法可以使您当前的代码正常工作:
假设表格认证:
<li id="liLogin" runat="server" visible='<%= !User.Identity.IsAuthenticated %>' ><a href="Login.aspx"><span>LogIn</span></a></li>
<li id="liReg" runat="server" visible='<%= !User.Identity.IsAuthenticated %>' ><a href="Registration.aspx"><span>Register</span></a></li>
<li id="liSignout" runat="server" visible='<%= User.Identity.IsAuthenticated %>' ><a href="Signout.aspx"><span>Signout</span></a></li>
使用Session var:
<li id="liLogin" runat="server" visible='<%= (Session["bla"] == null) %>' ><a href="Login.aspx"><span>LogIn</span></a></li>
<li id="liReg" runat="server" visible='<%= (Session["bla"] == null) %>' ><a href="Registration.aspx"><span>Register</span></a></li>
<li id="liSignout" runat="server" visible='<%= (Session["bla"] != null) %>' ><a href="Signout.aspx"><span>Signout</span></a></li>
答案 3 :(得分:1)
您只需创建一个用户会话,并检查sign-in
用户是否存在,如果存在则显示SignOut
,否则显示login panel
。
答案 4 :(得分:1)
添加runat =“server”属性,虽然它的简单技巧。
<td id="tabs2" style="width:190px" runat="server">
<ul id="logreg">
<li><a href="Login.aspx" ><span>LogIn</span></a></li>
<li><a href="Registration.aspx"><span>Register</span></a>
</li>
</ul>
</td>
登录成功后,您可以这样做
tabs2.Visible=false
答案 5 :(得分:0)
由于您没有使用表单身份验证,而您的老师不允许您使用LoginView Control,我会给您另一个选项......这就是我要做的...
我会像母版页中的标题一样保留常用功能。这样的 用户登录检查本来是集中的。
我会转换为asp:超链接控件。主页面类的OnLoad方法检查保存id的会话变量是否为空,执行以下操作: hyperlinkObj.Attributes.Add( “风格”, “显示:无”);