利用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;//后面用到ScriptHelper对象(ScriptHelper.cs是自己编写的cs文件)
using System.Data;//后面用到dataset

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();//.Trim()是去掉字符串前后的空字符
string passWord = txtPwd.Text.Trim();

//.Ext_IsNullOrEmpty()是在另一个文件中自己编写的函数,用于判断字符串是否为空字符(也可用userName==“”等判断)
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("用户名不存在!");
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[0]["PersonName"].ToString();
Session["UserID"] = dsUser.Tables[0].Rows[0]["ItemID"].ToString();
//如果登录成功 跳转到首页
Response.Redirect("index.aspx");
}
}
}

时间: 2024-07-30 10:19:17

利用DataSet部分功能实现网站登录的相关文章

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

1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送.coiokielib模块用到的对象主要有下面几 个:CookieJar.FileCookieJar.MozillaCookieJar.LWPCookieJar.其中他们的关系如下: 2.urllib2模块 说到urllib2模块最强大的部分绝对是它的o

利用 squid 反向代理提高网站性能

本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性. 现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全. 反向代理的概念 反向代理

Servlet学习(三)Servlet编程实例-网站登录(修改版-增加数据库-附源码)

我们为刚才的那个示例Servlet学习(二)Servlet编程实例-网站登录添加上数据库,组成一个较为完整的登录功能. 在开始之前我们得首先了解下一些常用的java术语: PO(persistant object) 持久对象 在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了. 通常对应数据模型(数据库),本身还有部分业务逻辑的处理. 可以看成是与数据库中的表相映射的java对象. 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合. PO中应该不包含

使用Oracle的Security External Password Store功能实现无密码登录数据库

使用Oracle的Security External Password Store功能实现无密码登录数据库 作者:赵全文  网名:guestart 在今年国内很多用户的Oracle数据库突然遭到比特币勒索,从这一方面来说,数据库的安全,大家没有引起足够的重视.其实不难发现,我们在生产环境中使用的Oracle数据库确实存在着很多安全隐患和安全风险.Oracle在数据库安全方面的解决方案也有很多,比如Oracle审计与数据库防火墙(AVDF)产品.Oracle的透明数据加密功能(KDE)和Oralc

利用sharesdk来进行facebook的登录

利用sharesdk来进行facebook的登录 by 伍雪颖 利用sharesdk来进行facebook的登录(当然也可以直接用Facebook-sdk-ios,不过用sharesdk相对简单点) 在国内app要加入facebook就是麻烦啊,因为要配置vpn,配置vpn后网速又慢. 1.下载sharesdk:(只下载facebook的部分,不然包大小会很大) http://sharesdk.mob.com/Download 2.添加sdk进去工程和添加依赖的库 SystemConfigura

一个利用HTML5 localStorage功能的todo应用(angularJs+Bootstrap)

今天在网上看到一个简单的todo应用,使用angularJs做前端数据绑定,利用localStorage来存储数据,觉得挺有意思的. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html ng-app="todoApp"> <head> <me

利用HTML5定位功能,实现在百度地图上定位

利用HTML5定位功能,实现在百度地图上定位 代码如下: <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>HTML5定位</title>     <script type="text/javascript" src="http://lib.sinaapp

利用HTML5定位功能,实现在百度地图上定位(转)

原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无论使用WIFI还是移动4G联网, 定位精度都是蛮高的,误差在几十米内) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

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

来源:http://www.ido321.com/1123.html 今天get了一招:利用.htaccess文件对PHP网站或文件进行伪静态处理. 一.检查服务器是否支持伪静态处理: 必须要空间支持 Rewrite 以及对站点目录中有 .htaccess 的文件解析,才有效.找到apache安装目录下的httpd.cof文件,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#(大概在154行,我的默认是开启) 二.在httpd.cof中