我已经在google搜索了很多。我得到了所有代码但该代码不起作用。我创建了一个注销按钮,然后在按钮上单击将用户重定向到注销页面......但是进一步的事情并不顺利。
这是注销页面的代码
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);
}
编辑:发生以下异常:找不到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。请求的网址:/MailFormat/login.aspx
答案 0 :(得分:0)
我没有看到任何计时器控制。您的页面上是否有计时器控件并且是否已启用,以便Timer1_Tick
被触发?
答案 1 :(得分:0)
尝试以下代码。
Response.Redirect(FormsAuthentication.LoginUrl);
FormsAuthentication.RedirectToLoginPage()更整洁。您应该在Web.config中设置defaultUrl属性,即<forms loginUrl="login.aspx" defaultUrl="index.aspx" />
答案 2 :(得分:0)
会话和身份验证是两个不同的事情,您需要在注销时同步。我想Logout Page_Load你应该这样做 FormsAuthentication.SignOut();然后清除会话。
答案 3 :(得分:0)
我找到了这个查询的解决方案===我添加了一个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 onload="disableBackButton()">
清除了退出点击时的所有注意事项 然后 在管理页面加载检查 对于会话值 如果为null则返回yo登录页面。以下是代码
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");
}
}