每当点击我的asp.net应用程序中的LoginView时,我想使我的登录cookie失效。我已经尝试运行代码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);
}
}
我的login.aspx页面在Page_Load上检查此cookie并自动将用户重定向到网站的主页面,省去了登录的麻烦。但如果他们选择重新登录,我想让cookie过期要加载的登录页面。如果我点击登录视图,我只是不断被重定向回主页面,因为到期cookie的代码似乎永远不会运行。我知道这可能很简单,但我是C#的新手并且是自学成才。请不要发表评论只是为了说明这应该是多么容易,因为我很清楚这一点。
答案 0 :(得分:1)
我认为ViewChange事件不适用于此。
一个简单的解决方案是将“forceLogout”参数添加到“LoggedInTemplate”中显示的登录URL。在登录页面的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
}
}