利用DataSet部分功能实现网站登录
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ZG.Common;
using System.Data;
namespace WebApplication
{
public partial class Login:System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
}
///<summary>
///登录按钮
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void btnLogin_Click(object sender,EventArgs e)
{
//用户表 Sys_User 列PersonStatus为“正常”才可登录,不然提示账户状态为PersonStatus内的内容
//列PersonCode为用户名Password为密码
//数据库中PassWord保存的为加密后的 字符串.Ext_DecryptString();为解密Ext_EncryptString();为加密
string userName=txtUserName.Text.Trim();
string passWord=txtPwd.Text.Trim();
//.Ext_IsNullOrEmpty()是在另一个文件中自己编写的函数,用于判断字符串是否为空字符
if(userName.Ext_IsNullOrEmpty())
{
ScriptHelper.ShowAlertScript("请输入用户名!");
return;
}
if(passWord.Ext_IsNullOrEmpty())
{
ScriptHelper.ShowAlertScript("请输入密码!");
return;
}
//在Sys_User 表中筛选出用户名为userName的数据数量,如果为0表示没有该用户,为1表示有
DataSet ds=SqlHelper.GetData("select count(*)from Sys_User where PersonCode='"+userName+"'");
if(ds.Tables[0].Rows[0][0].ToString() !="1")
{
ScriptHelper.ShowAlertScript("用户名不存在!"0;
return;
}
//在SYS_User表中筛选出用户名为userName 的PersonStatus值
DataSet dsStatus=SqlHelper.GetData("select PersonStatus from Sys_User where PersonCode'"+userName+"'");
//取出dsStatus(小数据库)中([0])第一张表的第一行中名为PersonStatus的列的值
string personStatus=dsStatus.Tables[0].Rows[0]["PersonStatus"].ToString();
if(personStatus !="正常")
{
ScriptHelper.ShowAlertScript("用户状态不正确:"+personStatus);
return;
}
//注意密码的加密,空字符加密后便不是空字符了。数据库中的密码是加密后的字符,实际比较中需要用实际输入字符经加密得到的字符与数据库中的比较
//判断密码 法一
//string sql="select *from Sys_User where PersonCode='{0}' and Password='{1}'";
//DataSet dsUser=SqlHelper.GetData(string.Format(sql,userName,passWord.Ext_EncryptString()));
//if(dsUser.Tables[0].Rows.Count !=1)
//{
//ScriptHelper.ShowAlertScript("密码不正确!");
//return;
//}
//判断密码 法二
string sql="select *from Sys_User where PersonCode='{0}'";
DataSet dsUser=SqlHelper.GetData(string.Format(sql,UserName));
if(dsUser.Tables[0].Rows[0]["PassWord"].ToString() !=passWord.Ext_EncryptString())
{
ScriptHelper.ShowAlertScript("密码不正确!");
return;
}
Session["UserName"].dsUser.Tables[0].Rows[0]["PersonCode"].ToString();
Session["LoginUser"]=dsUser.Tables[0].Rows["PersonName"].ToString();
Session["UserID"]=dsUser.Tables[0].Rows[0]["ItemID"].ToString();
//如果登录成功,跳转到首页
Response.Redirect("index.aspx");
}
}
}
利用DataSet部分功能实现网站登录的更多相关文章
- 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)
利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...
- cookielib和urllib2模块相结合模拟网站登录
1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对 ...
- Java模拟网站登录02【转载】
如何用Java代码模拟一些如百度.QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作,而这两种方式恰好在Java有开源实现,在这里介绍一个工具包,它是家喻户晓的HttpClient. ...
- PHP操作实现一个多功能购物网站
PHP操作实现一个多功能购物网站 一.需要实现的页面: Index.aspx:浏览商品页面,显示商品列表,用户可以点击“加入购物车“. ViewCart.aspx:查看购物车页面,显示已购买的商品信息 ...
- 利用 squid 反向代理提高网站性能(转载)
本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术, ...
- 转-利用Oracle审计功能来监测试环境的变化
http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的 ...
- discuz论坛与其它网站登录注册整合
discuz论坛与其它网站登录注册整合 本文以discuz 7.0.0 php版本的论坛与 .net 2.0的网站注册登录整合为类.没有采用uc_center或第三方插件.以另类的方式实现.此方法实现 ...
- 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas
如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ...
- Apache:如何利用.htaccess文件对PHP网站或文件进行伪静态处理
来源:http://www.ido321.com/1123.html 今天get了一招:利用.htaccess文件对PHP网站或文件进行伪静态处理. 一.检查服务器是否支持伪静态处理: 必 须要空间支 ...
随机推荐
- HDU 2065 "红色病毒"问题 ——快速幂 生成函数
$A(x)=1+x^2/2!+x^4/4!...$ $A(x)=1+x^1/1!+x^2/2!...$ 然后把生成函数弄出来. 暴力手算. 发现结论. 直接是$4^{n-1}+2^{n-1}$ 然后快 ...
- bzoj4455【ZJOI2016】小星星
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=4455 给一张图和该图的一棵生成树,求可能的编号方案数 sol :dalao教导我们,看到计数 ...
- NOIP2017赛前模拟10月30日总结
题目1: n个人参赛(n<=100000),每个人有一个权值··已知两个人权值绝对值之差小于等于K时,两个人都有可能赢,若大于则权值大的人赢···比赛为淘汰制,进行n-1轮·问最后可能赢的人有多 ...
- Struts框架详解
1.Struts应用框架介绍 (1)框架 框架最简单的形式是指已开发过并已测试过的软件的程序块,这些程序块可以在多个软件开发工程中重用.框架提供了一个概括的体系结构模版,可以用这个模板来构建特定领域中 ...
- 【09】Vue 之 Vuex 数据通信
9.1. 引言 Vue组件化做的确实非常彻底,它独有的vue单文件组件也是做的非常有特色.组件化的同时带来的是:组件之间的数据共享和通信的难题. 尤其Vue组件设计的就是,父组件通过子组件的prop进 ...
- 幸运数字(bzoj 1853)
Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”! ...
- 多核cpu的特殊中断
cpu可以向其他cpu发送中断,也可以向单独某一个cpu发送中断 每个 cpu 都有一个时钟中断源
- js6:history和navigator对象的学习
原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <title>js</title> & ...
- [LeetCode] Sum Root to Leaf Numbers dfs,深度搜索
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...
- 带接口的webservice 的发布
1.接口:(打上service注解) package ws.qlq.a; import javax.jws.WebService; /** * 面向接口的webservice发布方式 * * */ @ ...