我只想将LogIn Status
文本放在MY ASP母版页中。当用户未登录时,它将显示LogIn
,如果用户已logged In
,则会显示LogOut
。用户点击logOut
后,会话将会清除。
<asp:LoginView ID="LoginView1" runat="server" onviewchanged="LoginView1_ViewChanged">
<AnonymousTemplate>
<asp:LoginStatus ID="LoginStatus1" runat="server" LoginText="logIn" />
</AnonymousTemplate>
<LoggedInTemplate>
<asp:LoginStatus ID="LoginStatus2" runat="server" LogoutText="loggedout" />
</LoggedInTemplate>
</asp:LoginView>
我正在使用using System.Web.SessionState;
来管理会话。我可以使用下面的代码检查用户是否登录。
If (Session["logged"] == true)
请根据当前会话状态,帮助我动态显示主页中的LogIn
或logOut
状态。先感谢您。
答案 0 :(得分:0)
LoginView
控件将使用当前请求的标识来确定它们是否已登录,以及主体的角色成员身份。因此,您将无法使用LoginView
实现您的目标。与LoginStatus
相同。
您可以滚动这些控件的自己版本以执行您想要的操作,或者尝试从这些控件派生您自己的控件,并简单地覆盖它在您登录时所指出的部分。
或者,您可以在母版页中放置类似的内容。
<% if (Session["logged"] is bool && (bool)Session["logged"]) {%>
Logged in
%> } else { %>
Logged out
<% } %>
但是,我建议你只依靠请求的身份来确定用户是否已登录.A)它是内置的,完全支持的,你不需要做任何额外的事情B)会话不耐用。您可以通过访问User.Identity.IsAuthenticated
属性来访问页面,控件等中的请求用户。