首页 > 解决方案 > 尝试三次不成功后注销用户 - ASP.NET

问题描述

我是编程新手。在我的 Web 应用程序中,用户在尝试访问受限页面时会收到弹出警报。经过三次不成功的尝试后,我希望他被注销(即重定向到注销页面)。我的问题是,如何捕捉每次失败的尝试。

我现有的用于发出警报的代码,

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    if (Convert.ToString(Session["StaffID"]) != "1" || Convert.ToString(Session["StaffID"]) == null || Convert.ToString(Session["StaffID"]) == "")
    {
        Response.Write("<script language='javascript'>window.alert('You are not allowed to view this page');window.location='Mainpage.aspx';</script>");
    }
}

标签: c#asp.netauthentication

解决方案


您可以使用另一个会话来捕获每个失败的尝试。请检查以下代码。我在 ASP.NET MVC 中对此进行了测试。Session["StaffID"] 是您的条件检查或任何条件,因此请使用另一个会话来计算尝试次数。希望它会帮助你。

    public ActionResult OnInit()
    {
        base.OnInit(e);
        var accessCount = Convert.ToInt16(Session["AccessCount"]);
        if (Convert.ToString(Session["StaffID"]) != "1" || Convert.ToString(Session["StaffID"]) == null || Convert.ToString(Session["StaffID"]) == "")
        {
            //Response.Write("<script language='javascript'>window.alert('You are not allowed to view this page');window.location='Mainpage.aspx';</script>");
            accessCount++;
            if (accessCount <= 3)
            {
                Session["AccessCount"] = accessCount;
                return Content("<script>alert('You are not allowed to view this page')</script>");
            }
            else
            {
                Session["AccessCount"] = 0;
                return RedirectToAction("logout");
            }
        }
    }

推荐阅读