【问题标题】:Issue in logout注销中的问题
【发布时间】:2016-05-20 20:39:02
【问题描述】:

在我的网络应用程序中,我想设置 cookie,但在保留它的同时,我在注销时遇到了问题。

代码如下:

#region Logout
    public ActionResult Logout()
    {
        Session.Clear();
        HttpContext.Session["var1"] = null;
        HttpContext.Session["var2"] = null;
        HttpContext.Session["var3"] = null;

        SetCookie("XXXX", XXXX, 30);
        return View();
    }
    #endregion

    #region Set Cookie
    private void SetCookie(string CookieName, string CookieValue, int CookieLifeDay)
    {
        if (HttpContext.Request.Cookies[CookieName] == null)
        {
            var cookie = HttpContext.Response.Cookies[CookieName];
            cookie.Expires = DateTime.Now.AddDays(CookieLifeDay);
            cookie.Value = CookieValue;
            HttpContext.Response.Cookies.Add(cookie);


        }

        else
        {
            var cookie = HttpContext.Request.Cookies[CookieName];
            cookie.Expires = DateTime.Now.AddDays(CookieLifeDay);
            cookie.Value = CookieValue;
            HttpContext.Response.Cookies.Add(cookie);

        }
    }
    #endregion

当我第一次注销时,它显示注销成功,但是当我单击返回按钮时,它会进入用户访问的最后一个页面。而第二次,我点击注销按钮。我可以成功注销。这是此 Web 应用程序中的一个主要问题。任何类型的帮助都是高度请求的。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 model-view-controller controller


    【解决方案1】:

    使用那里删除会话

      public ActionResult Logout()
        {            
             Session.Clear();
             Session.RemoveAll();
             Session.Abandon();
             return RedirectToAction("Login", "Home");
        }
    

    【讨论】:

    • 它说我在一个无限循环@Imran
    • 它删除会话。您可以使用操作过滤器来检查您的会话是否处于活动状态..
    • 不过,单击后退按钮会将其带到上一页
    【解决方案2】:

    你可以使用

    Authentication.Logout();
    

    【讨论】:

    • 它说Authentication没有注销的定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2012-02-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多