Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.net通过检查会话在母版页中显示登录状态_C#_Asp.net_Logging_Session State - Fatal编程技术网

C# ASP.net通过检查会话在母版页中显示登录状态

C# ASP.net通过检查会话在母版页中显示登录状态,c#,asp.net,logging,session-state,C#,Asp.net,Logging,Session State,我只想将登录状态文本放入我的ASP母版页。当用户未登录时,它将显示登录,如果用户已登录,它将显示注销。一旦用户单击了注销,会话将被清除 <asp:LoginView ID="LoginView1" runat="server" onviewchanged="LoginView1_ViewChanged"> <AnonymousTemplate> <asp:LoginStatus ID="LoginStatus1" runat

我只想将
登录状态
文本放入我的ASP母版页。当用户未登录时,它将显示
登录
,如果用户已
登录
,它将显示
注销
。一旦用户单击了注销,会话将被清除

<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>  

请帮助我根据当前会话状态在母版页中动态显示
登录
注销
状态。先谢谢你

LoginView
控件使用当前请求的标识来确定它们是否已登录,以及主体的角色成员身份(如果您使用可以为不同角色显示不同模板的功能)。因此,使用
LoginView
将无法实现您的愿望。与
LoginStatus
相同

您可以滚动这些控件的您自己的版本来执行您想要的操作,或者尝试从这些控件派生您自己的控件,并简单地覆盖它确定您是否登录的部分

或者,您可以在母版页中放置类似的内容

<% if (Session["logged"] is bool && (bool)Session["logged"]) {%>
 Logged in
%> } else { %>
 Logged out
<% } %>

登录
%>}否则{%>
注销
但是,我建议您仅依靠请求的标识来确定用户是否已登录。a)它是内置的,完全受支持的,您不需要做任何额外的事情B)会话不持久。您可以通过访问
user.identity.IsAuthenticated
属性在页面、控件等中访问请求的用户

<% if (Session["logged"] is bool && (bool)Session["logged"]) {%>
 Logged in
%> } else { %>
 Logged out
<% } %>