WinForm登录验证
概述:输错三次禁止登陆,15分钟后才能继续。
图示:

Form1代码:
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace 登录验证项目
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//连接数据库
//将连接字符串写入配置文件中 string connStr = "sever=.;uid=sa;pwd=123456;database=demo";
这部分写在配置文件中
//<connectionStrings>
// <add name="SqlConn" connectionString="server=.;uid=sa;pwd=123456;database=LoginBlock"/>
//</connectionStrings>
//条添加引用引入configuration命名空间
string connStr = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
//select 查询语句str
string str = @"SELECT [Uid]
,[Unm]
,[Pwd]
,[ErrorDate]
,[ErrorTimes]
FROM [Login_Block]
WHERE Unm='" + textBox1.Text.Trim()
+ "' and Pwd='" + textBox2.Text.Trim() + "' ";
cmd.CommandText = str;
// bool ishasdata=false;
//这里创建Login对象
Login login = null;
using (SqlDataReader reader = cmd.ExecuteReader())
{//判断是否有数据
#region MyRegion
//if (!reader.hasrows)
//{
// //修改错误时间,错误次数
//}
#endregion
#region MyRegion
if (reader.HasRows)
{
reader.Read();
}
#endregion
if (reader.Read())
{
login = new Login();
login.Uid = int.Parse(reader["Uid"].ToString());
login.Pwd = reader["Pwd"].ToString();
login.ErrorTimes = int.Parse(reader["ErrorTimes"].ToString());
login.Errordata = DateTime.Parse(reader["Errordate"].ToString());
}
// ishasdata = reader.HasRows;
}//花括号执行结束之前reader对象一直占用conn对象
if (login == null/*!ishasdata*/)
{
//修改 错误时间,错误次数 where UserName=txtUserName.Text
cmd.CommandText =
"update Login_Block set Errordate=getdate(), ErrorTimes=ErrorTimes+1 where Unm='" +
textBox1.Text.Trim() + "'";
cmd.ExecuteNonQuery();
//MessageBox.Show("用户名密码Error");
return;
}
//执行有数据的过程
if (login.ErrorTimes < 3 || DateTime.Now.Subtract(login.Errordata).Minutes > 15)
{
MessageBox.Show("登录成功!!");
cmd.CommandText = "update Login_Block set ErrorTimes=0,Errordate=getdate() where Uid=" + login.Uid;
cmd.ExecuteNonQuery();
}
else
{
MessageBox.Show("登录失败!账号被锁定");
}
}
}
}
}
}
Login类:
using System;
namespace 登录验证项目
{
public class Login
{
//[Uid],[Pwd],[ErrorTimes],[Errordata]
public int Uid { get; set; }
public string Unm { get; set; }
public string Pwd { get; set; }
public int ErrorTimes { get; set; }
public DateTime Errordata { get; set; }
}
}
数据库:
表:Login_Block
字段:
[Uid]
[Unm]
[Pwd]
[ErrorDate]
[ErrorTimes]
WinForm登录验证的更多相关文章
- ASP.NET MVC 登录验证
好久没写随笔了,这段时间没 什么事情,领导 一直没安排任务,索性 一直在研究代码,说实在的,这个登录都 搞得我云里雾里的,所以这次我可能也讲得不是 特别清楚,但是 我尽力把我知道的讲出来,顺便也对自 ...
- Shiro安全框架入门篇(登录验证实例详解与源码)
转载自http://blog.csdn.net/u013142781 一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和J ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- AD域登录验证
AD域登录验证 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5799699.html 需求 系统在登录的时候,需要根据用户名和密码验证连接域服务器进行 ...
- ASP.NET MVC4 Forms 登录验证
Web.config配置: 在<system.web>节下: <authentication mode="Forms"> <forms loginUr ...
- MVC前台页面做登录验证
最近接触了一个电商平台的前台页面,需要做一个登录验证,具体情况是:当用户想要看自己的订单.积分等等信息,就需要用户登录之后才能查询,那么在MVC项目中我们应该怎么做这个前台的验证呢? 1.我在Cont ...
- [MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验)
之前的学习中,在对Session校验完成登录验证时,通常使用Filter来处理,方法类似与前文的错误日志过滤,即新建Filter类继承ActionFilterAttribute类,重写On ...
- ThinkPHP之登录验证
验证方面写的不是很完整,正在完善当中 <?php /** * Created by dreamcms. * User: Administrator * Date: 2016/9/5 * Time ...
- ASP.NET MVC3 实现用户登录验证
自定义一个授权筛选器类,继承于AuthorizeAttribute: using System; using System.Web; using System.Web.Mvc; namespace M ...
随机推荐
- SAP 用户参数 ME_USE_GRID
SAP 用户参数 ME_USE_GRID SAP的一些标准报表格式极其不友好,如果不做特殊参数设定,报表使用起来很不方便.我们可以通过设置user parameter的方式,改变一些报表的显示格式,让 ...
- Centos7 安装Tomcat并运行程序
运行环境:Centos7 jdk:1.8.0_171 Tocmcat:8.5.31 下载地址 :https://tomcat.apache.org/download-80.cgi#8.5.31 Ap ...
- macos 安装sublime text 3,如何安装插件
1. 上面的代码如下: import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1 ...
- 从0开始的Python学习009参数
默认参数 对于参数有时候我们希望他是可选的,前面介绍了函数柯里化,当然还有其他的解决方案.如果不想给某些参数提供值的话,就让这写参数使用默认值.在函数定义的时候给参数赋值使用(参数,参数=值..... ...
- Sqlite3-安装使用
Sqlite安装 请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件. 您需要下载 sqlite-tools-win32-*.zip 和 sqlite-dll-win32-* ...
- 生成Csv格式的字符串
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...
- 持续代码质量管理-SonarQube-7.3简单使用
安装了SonarQube以及Sonar Scanner之后,就需要那代码检测了.当然为了方便我们使用已有现成的demo,知道到对应的git地址下载即可. 1. sonar-examples下载 htt ...
- 我的第一个python web开发框架(24)——系统重构与ORM
小白弄完代码版本管理和接口文档后,兴奋的找到老菜. 小白:老大,我已经按你讲的要求,将代码版本管理和接口文档都搞好了.从项目开始到现在,除了代码编写,感觉学会好多东西啊. 老菜:嗯嗯,实战确实需要掌握 ...
- #017 python实验课第五周
总结写在最前面: 1.语法还是不会...(每周强制留的C语言一百题都没空写PS.团委诶....)都是现查现用(莫凡Python这个网站特别好用知识点一个视频就一分钟B站的播放器没广告,用啥学啥,还配有 ...
- Python爬虫 selenium
库的安装 pip3 install selenium 声明浏览器对象 from selenium import webdriver browser = webdriver.Chrome() brows ...