c# - 尝试三次不成功后注销用户 - 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>");
}
}
解决方案
您可以使用另一个会话来捕获每个失败的尝试。请检查以下代码。我在 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");
}
}
}
推荐阅读
- php - 避免 WooCommerce Dokan 中父订单的订单完成通知
- javascript - 这个历史时区偏移 UTC+0057 是怎么回事?
- pandas - 替换熊猫数据框中 int64 末尾的数字
- node.js - 在该位置创建带有数字的目录
- java - Java Spring Boot:如何实现以 2 个字段作为参数的 Redis 查询?
- html - Catalina - 如何使用 file:// 打开 html 文件 - 沙盒 / 安全
- amazon-web-services - 在一个请求中获取文件夹 S3 Amazon 中的所有文件
- excel - 将不相邻的单元格转置到下一个开放行
- angular - 使用 Angular 使 SignalR 服务在客户端中持久化
- c# - Selenium C# ExpectedConditions 与 IWebElement