后退按钮问题…和注销按钮

本文关键字:按钮 注销 问题 | 更新日期: 2023-09-27 18:15:03

我在谷歌上搜索了很多。我得到了所有的代码,但代码不起作用。我创建了一个注销按钮和按钮的点击重定向用户注销页面…但进一步的事情就不顺利了。

这里是登出页面的代码

protected void Page_Load(object sender, EventArgs e)
{
    Session.Abandon();
    Session.Clear();
    Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();  
}
protected void Timer1_Tick(object sender, EventArgs e)
{
    string redirectUrl = FormsAuthentication.LoginUrl + "?ReturnUrl=loginAcc.aspx";
    FormsAuthentication.SignOut();
    Response.Redirect(redirectUrl);
}

Edit:发生以下异常:资源无法找到。

描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下网址,并确保拼写正确。请求的URL: /MailFormat/login.aspx

后退按钮问题…和注销按钮

我没有看到任何定时器控件。您的页面上是否有定时器控件,并且是否启用了它,以便触发Timer1_Tick ?

试试下面的代码。

Response.Redirect(FormsAuthentication.LoginUrl);

FormsAuthentication.RedirectToLoginPage()更简洁。您应该在Web中设置一个defaultUrl属性集。config,即<forms loginUrl="login.aspx" defaultUrl="index.aspx" />

会话和身份验证是两个不同的东西,您需要在注销时同步它们。我认为注销Page_Load你应该做FormsAuthentication.SignOut ();然后清除会话

我找到了这个查询的解决方案===我添加了一个javascript函数

<script type="text/javascript" language="javascript"> 
function disableBackButton()
{
window.history.forward();
}
setTimeout("disableBackButton()", 0);
window.onload=disableBackButton(); 
window.onpageshow=function(evt) { if(evt.persisted) disableBackButton() } 
window.onunload=function() { void(0) }  
</script>
<script runat="server">

然后在body上调用这个函数

<body onload="disableBackButton()">

清除了登出时点击的所有视图然后在页面加载的管理检查对于会话值如果为空,则返回您的登录页面。下面是代码

 protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            Session.Abandon();
            Session.RemoveAll();
            Session.Clear();
            if (Session["hr"] == null && Session["EMPLOYEEID"]==null)
            {
                Response.Redirect("~/loginAcc.aspx");
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["hr"] == null && Session["EMPLOYEEID"] == null)
        {
            Response.Redirect("~/loginAcc.aspx");
        }
    }