0

这似乎是一个非常微不足道的问题,但我仍然无法让它运行。我正在构建一个 asp.net Web 应用程序,我在这里使用表单身份验证。我遵循了以下步骤。

1)在 web.config 这是条目

    <authentication mode="Forms">
          <forms loginUrl="Default.aspx" timeout="30" defaultUrl="StockTips.aspx" cookieless="UseCookies"
                 滑动过期=“真” />
        </认证>
        <sessionState mode="InProc" cookieless="false" timeout="30" />

2) 在 default.aspx 中,我使用了自定义身份验证,身份验证通过后,我将重定向到 web.config 中提到的 defaultUrl。以下是代码。这工作正常。

会话[“测试”] =“测试”;
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);

Login1 是asp.net 的登录控件。

3)在StockTips.aspx(这是defaulturl)中,在注销链接按钮单击事件中我试图放弃会话,以便它自动重定向到loginurl(default.aspx)。这没有发生。它停留在同一页面上,即 StockTips.aspx。以下是代码。

        protected void lnkLogout_Click(对象发送者,EventArgs e)
        {
            字符串 str = Session["test"].ToString();

            会话.Abandon();
            //Session.RemoveAll();
            //Session.Clear();
            //Response.Cookies.Remove("ASP.NET_SessionId");
            //Response.Cookies["ASP.NET_SessionId"].Value = string.Empty;
            //Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

            //FormsAuthentication.SignOut();

            字符串 str1 = Session["test"].ToString();
        }

Session["test"] 中的值也保留。我已经尝试了上面的注释代码。我不想将 Response.Redirect 显式写入 loginurl,因为我很确定一旦会话被放弃,它会自动重定向到 loginurl。但不知何故,它不起作用。

我不确定以下信息是否会有所帮助,但仍想添加它。我有一个母版页,其中 default.aspx 和 stocktips.aspx 都打开。LinkBut​​ton 在 stocktips.aspx 内部而不是在母版页上。

如果您需要我方面的任何进一步信息,请告诉我。

请帮忙!

提前致谢。

问候,

萨马尔

4

1 回答 1

0

配置

<forms name="WhateverYourAuthNameIs" 
   loginUrl="~/HomePage.aspx" 
   defaultUrl="~/Default.aspx" 
   protection="All" path="/" 
   cookieless="AutoDetect"/>

甚至还尝试 Js 代码

<body onload="window.setTimeout(function(){document.location.href='/Home.aspx';},30000);">

希望对你有帮助

于 2013-05-07T08:07:26.640 回答