簡體   English   中英

ASP.net 通過檢查 Session 在主頁中顯示 LoginStatus

[英]ASP.net display LoginStatus in masterpage by checking Session

我只想將LogIn Status文本放在我的 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; 管理 session。我可以使用以下代碼檢查用戶是否登錄。

If (Session["logged"] == true) 

請幫助我根據當前logOut狀態在母版頁中動態顯示LogIn或注銷狀態。 先感謝您。

LoginView控件使用當前請求的身份來確定他們是否已登錄,以及主體的角色成員資格,如果您使用可以為不同角色顯示不同模板的功能。 因此,您將無法使用LoginView實現您想要的。 LoginStatus相同。

您可以滾動這些控件的您自己的版本來執行您希望的操作,或者嘗試從這些控件派生您自己的控件並簡單地覆蓋它確定您是否登錄的部分。

或者,您可以將類似的內容放在母版頁中。

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

但是,我建議您只依賴請求的身份來確定用戶是否已登錄。A) 它是內置的,完全受支持,您無需執行任何額外操作 B) 會話不持久. 您可以通過訪問User.Identity.IsAuthenticated屬性在頁面、控件等中訪問請求的用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM