正如标题所说,你如何在asp中正确实现/模拟Logout函数:登录到siteMapNode? p>
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
<%--[ <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]--%>
[ <a href="~/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Login.aspx"/> ]
</LoggedInTemplate>
</asp:LoginView>
我能做的最好的就是:
<siteMapNode url="~/Login.aspx" title="Logout" roles="Maker, Admin, Approver" description="" />
但这只会将用户重定向到“登录”页面。当您按下Web浏览器上的“后退”按钮时,用户仍然登录到系统,这与使用正确的“注销”功能时不同。
答案 0 :(得分:2)
您可以添加一个Logout.aspx页面,该页面终止用户的会话,然后重定向到登录页面,例如:
Session.Abandon();
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
然后您的siteMapNode
应该参考退出页面。
答案 1 :(得分:0)
您需要在所有用户页面中的页面加载事件内检查以下条件
If(!User.Identity.IsAuthenticated)
{
Response.Redirect("~/Login.aspx");
}
现在,如果您logout
,请使用浏览器后退按钮或网址来显示此页面。如果您的loggin
其他人转到login page.