protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUserName.Value.Trim();
string userpassword = txtUserPassword.Value.Trim(); if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(userpassword))
{
Common.MessageBox.Show(this, "账号和密码不能为空!");
}
else
{
string ip = Request.UserHostAddress;
BLL.ProxyInfo bllMember = new ProxyInfo();
string encrytpswd = DimoNetwork.Common.DEncrypt.TextEncrypt.MD5EncryptPassword(userpassword);
int reuslt;
Model.UserInfo userInfo= bllMember.ProxyLogin(username, encrytpswd, ip, out reuslt);
if (mProxyInfo != null)
{
//判断用户是否被冻结
if (userInfo.freezeState)
{
Common.MessageBox.Show(this, "您的账号已被冻结,请联系你的上级代理!");
}
else
{
Common.Cache.DimoCache.Default.Save<Common.Cache.SessionCache>("MemberSession", userInfo);
Common.MessageBox.ShowAndRedirects(this.Page, "", "main.aspx");
}
}
else
{
AddLoginErrorCount();
if (GetLoginErrorCount() >= )
{
Common.MessageBox.Show(this, "账号或密码错误次数过多,账号被锁定20分钟,请20分钟后重试!");
txtUserName.Value = "";
txtUserPassword.Value = "";
btnLogin.Visible = false;
}
else
{
Common.MessageBox.Show(this, "账号或密码错误!");
}
}
}
}
        /// <summary>
/// 获得登陆错误次数
/// </summary>
/// <returns></returns>
protected int GetLoginErrorCount()
{
int logincount = ;
object logincountcache = Common.Cache.Default.Get<Common.Cache.SessionCache>(lockcachekey);
if (logincountcache != null)
{
logincount = Convert.ToInt32(logincountcache);
}
return logincount;
}
  /// <summary>
/// 修改用户登录错误次数
/// </summary>
protected void AddLoginErrorCount()
{
object logincountcache = Common.Cache.DimoCache.Default.Get<Common.Cache.SessionCache>(lockcachekey);
if (logincountcache != null)
{
int logincount = Convert.ToInt32(logincountcache);
Common.Cache.Default.Save<Common.Cache.SessionCache>(lockcachekey,logincount + );
}
}

ASP.NET登录验证的更多相关文章

  1. C# asp.net 抓取需要登录的网页内容 抓取asp.net登录验证的网站

    private void btnASPNET_Click(object sender, EventArgs e)        {            Dictionary<string, s ...

  2. asp.net登录验证FormsAuthenticationTicket和FormsAuthentication类

    登录部分使用的类 FormsAuthentication   为 Web 应用程序管理 Forms 身份验证服务. 配置启用身份验证,WEB.config配置: <system.web> ...

  3. ASP.NET 登录验证 ihttpmoudle

    问题: 1.iis版本不同(IIS7.0,应用程序池采用的是集成模式,换成经典模式才起作用.) 在 IIS 7 以下的版本中,应用以下配置: <system.web> <httpMo ...

  4. asp.net登录状态验证

    文章:ASP.NET 登录验证 文章:ASP.NET MVC下判断用户登录和授权状态方法 文章:.net学习笔记---HttpHandle与HttpModule 第一篇文章,介绍了 1)早期的Base ...

  5. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)

    上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页  了解了LigerUI 中Grid的基本用法  现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...

  6. ASP.NET MVC5入门3之登录验证

    参考: HTML页面模版: http://www.ui.cn/detail/70262.html(第38个) MVC后台代码参考: http://www.oschina.net/p/nfine 开发环 ...

  7. ASP.NET MVC 登录验证

     好久没写随笔了,这段时间没 什么事情,领导 一直没安排任务,索性 一直在研究代码,说实在的,这个登录都 搞得我云里雾里的,所以这次我可能也讲得不是 特别清楚,但是 我尽力把我知道的讲出来,顺便也对自 ...

  8. ASP.NET MVC4 Forms 登录验证

    Web.config配置: 在<system.web>节下: <authentication mode="Forms"> <forms loginUr ...

  9. ASP.NET MVC3 实现用户登录验证

    自定义一个授权筛选器类,继承于AuthorizeAttribute: using System; using System.Web; using System.Web.Mvc; namespace M ...

随机推荐

  1. alome配环境

    1. gitLab: 将工程git到alome版的exlipse中. 2. 打开右上角Aclome视图: 3. 打开Aclome资源管理器窗口: 4. 打开git窗口,在Working Tree上右键 ...

  2. 网络操作系统 第六章 Window Server 2008 活动目录

    本章小结 在企业网络中,活动目录是必不可少的,它将网络中各种对象组织起来进行管理,方便了网络对象的查找,增强了网络的安全性,为用户的物流管理提供了极大的便利,本章首先介绍了活动目录的基本概念,然后通过 ...

  3. css格式比较及选择器类型总结

    在前端入门的前三天把网页制作过程中常用的一些标签和属性都认识和练习了一遍,能够做出简单模块的框架.就像老师说的网页制作就像建一栋大楼,html是砖和水泥,css是精装,js是完善各个功能.现在就开始进 ...

  4. Linux 常用分区方式

    1 分两个区 主目录:/ 交换分区:swap 2 常用分区方式,以使用100G空间安装linux为例 引导分区: 挂载点/boot,分区格式ext4,500M以内即可 交换分区: 无挂载点,分区格式选 ...

  5. Mac 系统安装教程

    上周末买了一个二手的Mac,当时是抹掉整个硬盘的,所以只能选择重装系统了.但是,多次重装都是失败了.最后使用USB安装,试了好几次,误打误撞总算成功了. 下面是整个安装的教程: 1. 备份好所有的私人 ...

  6. mysql怎么限制ip访问

    grant all privileges on *.* to 'root'@'ip'identified by '密码'; #授权某个ip的用户可以通过密码访问数据库

  7. Python中变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  8. java中Base64的加密工具封装

    Base64加密作为最简单普遍的加密方式(其实只能称为编码方式),应用场景众多比如秘钥,安全证书,也应用在其他的加密方式中或与其他加密方式进行嵌套使用 可以通过引用sun.misc来使用,也可以自己手 ...

  9. 解决添加codova plugin 编译出现问题:Execution failed for task ':processDebugManifest'.

    问题背景: ionic3项目上,添加cordova-plugin-cszbar,编译运行在android平台上 ,结果编译不成功.出现以下问题. Element uses-feature#androi ...

  10. Gradle实现自动打包,签名,自定义apk文件名

    Gradle实现自动打包,签名,自定义apk文件名 什么是签名,签名有什么用 Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行 ...