Expire Cookie From LoginView

本文关键字:LoginView From Cookie Expire | 更新日期: 2023-09-27 18:18:19

我想过期我的登录cookie每当我的asp.net应用程序中的LoginView被点击。我试过运行代码OnViewChanged和OnViewChanging,但代码似乎没有执行。

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false" 
                OnViewChanging="HeadLoginView_ViewChanging">
    protected void HeadLoginView_ViewChanging(object sender, EventArgs e)
    {
        if (Request.Cookies["storeNum"] != null)
        {
            HttpCookie myCookie = new HttpCookie("storeNum");
            myCookie.Expires = DateTime.Now.AddDays(-1d);
            Response.Cookies.Add(myCookie);
        }
    }

我的登录。aspx页面在Page_Load上检查这个cookie,并自动将用户重定向到网站的主页,从而省去了登录的麻烦。但是如果他们选择重新登录,我想让允许登录页面加载的cookie过期。如果我单击loginview,我只是不断被重定向回主页,因为cookie过期的代码似乎永远不会运行。我知道这可能很简单,但我是c#新手,是自学的。请不要发送评论,只是评论这应该是多么容易,因为我很清楚。

Expire Cookie From LoginView

我不认为ViewChange事件将为此工作。

一个简单的解决方案是在"LoggedInTemplate"中显示的登录url中添加一个"forceLogout"参数。在登录页面的Page_Load方法中查找该参数。如果不存在,继续进行重定向。如果存在,那么注销用户,不要进行重定向。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && string.IsNullOrEmpty(Request.QueryString["forceLogout"]))
    {
        // log the user out 
    }
    else
    {
        // Your original logic
    }
}