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部分功能实现网站登录的更多相关文章

  1. 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)

    利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...

  2. cookielib和urllib2模块相结合模拟网站登录

    1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对 ...

  3. Java模拟网站登录02【转载】

    如何用Java代码模拟一些如百度.QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作,而这两种方式恰好在Java有开源实现,在这里介绍一个工具包,它是家喻户晓的HttpClient. ...

  4. PHP操作实现一个多功能购物网站

    PHP操作实现一个多功能购物网站 一.需要实现的页面: Index.aspx:浏览商品页面,显示商品列表,用户可以点击“加入购物车“. ViewCart.aspx:查看购物车页面,显示已购买的商品信息 ...

  5. 利用 squid 反向代理提高网站性能(转载)

    本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术, ...

  6. 转-利用Oracle审计功能来监测试环境的变化

    http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的 ...

  7. discuz论坛与其它网站登录注册整合

    discuz论坛与其它网站登录注册整合 本文以discuz 7.0.0 php版本的论坛与 .net 2.0的网站注册登录整合为类.没有采用uc_center或第三方插件.以另类的方式实现.此方法实现 ...

  8. 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas

    如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ...

  9. Apache:如何利用.htaccess文件对PHP网站或文件进行伪静态处理

    来源:http://www.ido321.com/1123.html 今天get了一招:利用.htaccess文件对PHP网站或文件进行伪静态处理. 一.检查服务器是否支持伪静态处理: 必 须要空间支 ...

随机推荐

  1. 关于jena-fuseki SPARQL query版本问题的解决方案

    在做“Apache jena SPARQL endpoint及推理”时,遇到了不少问题,主要原因是jena-fuseki版本更新了.以下对问题解决方案做下笔记.想了解更多,请查阅底部参考文献. Que ...

  2. Codeforces Round #362 (Div. 2) A 水也挂

    A. Pineapple Incident time limit per test 1 second memory limit per test 256 megabytes input standar ...

  3. 简析JVM GC的根搜索算法

    根搜索算法的基本思路是通过一系列的“GC Roots”的对象作为起始点,从这些节点开始往下搜索,搜索的走过的路径称为引用链,当一个对象到“GC Roots”没有引用链可达时(也就是用图论的话说就是从G ...

  4. 用正则表达式把页面中的px全部替换成rem

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  5. Hibernate的merge与update方法的区别

    今天做了个测试,写了个测试用例来看看merge与update时控制台打印出来的日志有什么不一样.实体bean很简单,就id和name两个字段,接下来分别给出以下几种测试情形的控制台日志内容: 1. 数 ...

  6. Java学习之路(3)

    JKD的安装和配置: 一.适合超级菜鸟的,不用设置系统路径,不用到处找插件 (1)如果你的系统是windows或linux,根据系统的不同(32位和64位之分),先到www.baidu.com搜索jd ...

  7. 例说linux内核与应用数据通信系列【转】

    转自:http://blog.csdn.net/shallnet/article/details/47865169 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章对您有用,请点击文 ...

  8. linux根文件系统制作之busybox编译和系统构建【转】

    转自:http://blog.chinaunix.net/uid-29401328-id-5019660.html 介绍完相关文件后我们开始构建文件系统,涉及到的文件等到具体用到的时候再讲. 一.编译 ...

  9. 二叉树遍历 Morris

    二叉树的遍历,先根遍历,不适用递归,存储空间为 O(1) 转自:http://chuansongme.com/n/100461 MorrisInOrder(): while 没有结束 如果当前节点没有 ...

  10. AC日记——通往奥格瑞玛的道路 洛谷 P1462

    通往奥格瑞玛的道路 思路: 二分+spfa: 二分最大费用,然后判断只走小于等于二分答案的点是否可以花费小于体力上限的血量: 来,上代码: #include <cstdio> #inclu ...