【发布时间】:2014-07-16 14:28:41
【问题描述】:
我有一个 if 语句来检查用户是否登录以在导航栏中显示不同的元素(如果不是用户则登录,如果是用户则注销)。
下面是 if 语句,位于 Master.master(显然是母版页)
<% if (HttpContext.Current.User.Identity.IsAuthenticated || Session["email"] != null)
{ %>
<ul class="nav navbar-nav">
<li><a href="#">Browse</a></li>
<li><a href="#">Popular</a></li>
<li><a href="#">Reservations</a></li>
</ul>
<form method="post" runat="server" role="form">
<ul class="nav navbar-nav navbar-right">
<li><a href="#">My Account</a></li>
<li><a id="btnLogOut" runat="server" href="javascript:void(0)" onserverclick="LogOutUser">Log Out</a></li>
</ul>
</form>
<% }
else
{ %>
<ul class="nav navbar-nav">
<li><a href="#">Browse</a></li>
<li><a href="#">Popular</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Login <b class="caret"></b></a>
<div class="dropdown-menu">
<form id="loginform" method="post" runat="server" class="form-horizontal" role="form">
<div class="input-group col-xs-12">
<span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
<input id="login-email" type="email" class="form-control" name="email" placeholder="email" />
</div>
<div class="input-group col-xs-12">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
<input id="login-password" type="password" class="form-control" name="password" placeholder="password" />
</div>
<div class="login-controls input-group col-xs-12">
<a id="btnLogIn" runat="server" href="javascript:void(0)" onserverclick="LogInUser" class="btn btn-default col-xs-4">Login</a>
<div class="col-xs-offset-1 col-xs-7 checkbox-inline">
<label class="navbar-text">
<input id="login-remember" type="checkbox" name="remember" />
Remember me
</label>
</div>
</div>
<div id="loginMessageArea" class="alert alert-danger" runat="server">
</div>
<div class="navbar-text" id="no-account">
Don't have an account?
<a href="./Register.aspx">Register here!</a>
</div>
</form>
</div>
</li>
</ul>
<% } %>
当点击注销按钮时,这是触发的事件。
public void LogOutUser(object sender, System.EventArgs e)
{
FormsAuthentication.SignOut();
Session.Abandon();
}
我面临的问题是,如果用户点击注销,页面会刷新,什么都不会发生。但是,如果我刷新页面,我会看到变化。如何更改它以便在不刷新另一个页面的情况下获得结果?
编辑:粘贴到 if 语句所在的位置。
【问题讨论】:
-
声明
if声明的位置(在应用程序的哪个部分)?
标签: c# asp.net forms-authentication session-cookies