结合sqlite数据库,完善asp.net制作的web网页中的注册和登录操作。

1. Account-Register.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<title>注册页面</title>
<script src="../../Scripts/Common/JScript.js" type="text/javascript"></script>
</asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 用  户:<input id="name" type="text"/><br /><br />
密  码:<input id="pwd1" type="text"/><br /><br />
确认密码:<input id="pwd2" type="text"/><br /><br />
验 证 码:<input id="code" type="text"/><br /><br />
<img id="vimg" src="/Common/Image" onclick="changeImage()" />
<input type="button" onclick="Register()" value="注册"/>
<label id="showRegister" style="color:Red"></label> </asp:Content>

这里的页面采用了微软新建项目自带的母版格式。注册页有用户、密码、确认密码、图片验证码和注册按钮。

2. 点击注册按钮 onclick="Register()" 事件,保存在Scripts-Common-JScript.js中

function Register() {
var name = $("#name").val();
var pwd1 = $("#pwd1").val();
var pwd2 = $("#pwd2").val();
var code = $("#code").val();
//前台校验过滤
if (name != "") {
$.post("/Account/DoRegister", { name: name, pwd1: pwd1, pwd2: pwd2, code: code },
function (data) {
if (data == "0") {
$("#showRegister").html("注册成功");
window.location.href = "/account/login";
}
else if (data == "-1") {
$("#showRegister").html("用户名或密码为空");
}
else if (data == "-2") {
$("#showRegister").html("密码输入错误");
}
else if (data == "-3") {
$("#showRegister").html("用户名已存在");
}
else if (data == "-4") {
$("#showRegister").html("验证码错误");
}
});
}
else {
$("#showRegister").html("用户名为空");
} } function changeImage() {
var imgNode = document.getElementById("vimg");
imgNode.src = "/Common/Image/" + (new Date()).valueOf(); //加上时间的参数防止浏览器缓存
}

function Register()是前后台逻辑判断,前台通过$("#id").val()的方式获取id的值,后台利用request.form["name"]的形式接收,提示结果显示在id="showRegister"的<lable>上。jQuery通过ajax异步传输post,将值对交给后台判断"/Account/DoRegister"

function changeImage()是为了点击图片验证码,自变换的点击事件。通过对验证码vimg,加上时间参数来改变src的方式进行改变。
3. 后台逻辑判断 AccountController.cs

public ActionResult DoRegister()
{
string name = Request.Form["name"];
string pwd1 = Request.Form["pwd1"];
string pwd2 = Request.Form["pwd2"];
string code = Request.Form["code"]; //验证码
//后台验证
int res = ;
string checkCode = Session["Code"].ToString(); if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pwd1))
{
res = -;
}
else if (pwd1 != pwd2)
{
res = -;
}
else if (code.ToLower() != checkCode.ToLower()) //验证码全部转为小写
{
res = -;
}
else
{
//判断用户是否已经存在
List<MVCStudy.Model.User> userList = userBll.GetModelList("name= '" + name + "' and pwd= '" + pwd1 + "'");
if (userList.Count != )
{
res = -;
}
else {
//插入数据""
MVCStudy.Model.User userModel = new Model.User();
userModel.Name = name;
userModel.Pwd = pwd1;
userModel.AddTime = DateTime.Now.ToString();
userBll.Add(userModel);
}
}
return Content(res.ToString());
}

前提已经建好User的sqlite数据库表,里面存放了name和pwd,用户名和密码。再次确认密码和密码做比较,图片验证码存放在session["Code"]中,与输入的code做比较,且比较时全部转为小写字母,不区分大小写。将注册输入符合规范且图片验证码输入正确的,先判断是否已经在数据库中存在,若存在则提示“该用户已存在,请直接登录”,否则,则添加到数据库中,并提示用户添加成功,并跳转到登录页面。

4. Account-Login.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<title>登录页面</title>
<script src="../../Scripts/Common/JScript.js" type="text/javascript"></script>
</asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 用  户:<input id="name" type="text"/><br /><br />
密  码:<input id="pwd1" type="text"/><br /><br />
<%--<img id="vimg" src="/Common/Image" onclick="changeImage()" />--%>
<input type="button" onclick="Login()" value="登录"/>
<label id="showLogin" style="color:Red"></label> </asp:Content>

登录页面比较简单,只有用户、密码和登录按钮。(利用刚刚注册的用户c登录成功)

5. 登录按钮 onclick="Login()" 事件:

function Login() {
var name = $("#name").val();
var pwd1 = $("#pwd1").val(); $.post("/Account/DoLogin", { name: name, pwd1: pwd1 },
function (data) {
if (data == "0") {
$("#showLogin").html("登录成功");
window.location.href = "/home/index";
}
else if (data == "-1") {
$("#showLogin").html("用户名或密码为空");
}
else if (data == "-2") {
$("#showLogin").html("用户名或密码错误");
}
});
}

6. AccountController.cs-DoLogin函数:

MVCStudy.Business.User userBll = new Business.User();
public ActionResult DoLogin()
{
//后台c#获取前台js提交过来的数据
string name = Request.Form["name"];
string pwd1 = Request.Form["pwd1"]; int res = ;
if (string.IsNullOrEmpty(name)||string.IsNullOrEmpty(pwd1))
{
res = -;
}
else {
List<MVCStudy.Model.User> userList = userBll.GetModelList("name= '"+name+"' and pwd= '"+pwd1+"'");
if (userList.Count == )
{
res = -;
}
else {
Session["user"] = userList[].Name;
}
} return Content(res.ToString());
}

登录前,先新建一个MVCStudy.Business.User的userBll,利用GetModelList(“查找条件”)找出与输入的name和pwd相同的user,返回的是List<Model>的格式,取出userList[0],即为一条用户的信息,将userList[0].Name存放在Session["user"]中,成功跳转主页后用于显示登录人的信息。

asp.net 完善注册登录+sqlite数据库的更多相关文章

  1. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

  2. ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)

    MD5加密,Parameters防止SQL注入: protected void btnLog_Click(object sender, EventArgs e)     {         //获取验 ...

  3. php注册登录系统(一)-极简

    序 登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若有哪里错误请慧教 所用语言:php 数据库 :mysql 本次实现功能: 1.用户注册 2.用户登录 主要文件: 完整代 ...

  4. Spring Security 的注册登录流程

    Spring Security 的注册登录流程 数据库字段设计 主要数据库字段要有: 用户的 ID 用户名称 联系电话 登录密码(非明文) UserDTO对象 需要一个数据传输对象来将所有注册信息发送 ...

  5. Android Studio 通过一个登录功能介绍SQLite数据库的使用

    前言: SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在 ...

  6. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

  7. ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

    ASP.net与SQLite数据库通过js和ashx交互(连接和操作): 废话(也是思路):用的是VS2010,打算做网站前后台.由于不喜欢前台语言里加些与html和css和js的其他内容,想实现前后 ...

  8. nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案

    (1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore =  require(connect-mongo')改为var MongoStore =  ...

  9. asp.net中配置使用Sqlite轻型数据库

    Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 破解方法: 注册表删除 HK ...

随机推荐

  1. JS解决URL传递参数中文乱码问题

    function getUrlParam(name){ // 用该属性获取页面 URL 地址从问号 (?) 开始的 URL(查询部分) var url = window.location.search ...

  2. Promise对象的基本用法

    主要作用 1.用来传递异步操作的消息 2.三种状态:pending.Resolved.Rejected,而且只能从第一种状态转到后两者状态之一. 3.缺点 (1)一旦新建就会立即执行 (2)如果不设置 ...

  3. JS零基础一步一步做应用全记录

    1.起因 作为几个外卖重度依赖癌晚期患者,呆宿舍的时候几个人一起叫外卖已经是常事.偶然看到隔壁宿舍在饿了么订餐的时候,看到在饿了么的首页上有一个谁去拿外卖的一个小游戏/工具,感觉这个小细节,饿了么把握 ...

  4. 在WPF中使用FontAwesome之类的字体图标

    我之前在博客中介绍过几个矢量图库网站,在WPF程序中,一般接触到的矢量图标资源有XAML.SVG.字体这三种格式.XAML是标准格式就不说了,SVG并不是直接支持的,不过微软提供了Expression ...

  5. sso 自动化运维平台

    单点登录SSO(Single Sign-On)是身份管理中的一部分.本文中作者开发了一个自动化运维平台中的统一认证接口,单点登录平台通过提供统一的认证平台,实现单点登录.因此,应用系统并不需要开发用户 ...

  6. 《Go语言实战》笔记之协程同步 sync.WaitGroup

    原文地址(欢迎互换友链): http://www.niu12.com/article/8 sync 包提供同步 goroutine 的功能 <p>文档介绍</p><cod ...

  7. iOS:触摸事件和手势识别的介绍

    触摸事件和手势识别的介绍 1.iOS的输入事件  UIKit可识别三种类型的输入事件: 触摸事件 运动事件 远程控制事件 iOS中许多事件对象都是UIEvent类的实例,UIEvent记录了事件所产生 ...

  8. AWR报告简易分析

    Snap Id Snap Time Sessions Cursors/Session Begin Snap: 35669 2012-11-8 13:00 1246 11.3 End Snap: 356 ...

  9. xss学习教程

    XSS漏洞详细分析与讲解.rar xss黑白盒渗透测试.pdf xss基础钓鱼-shgcx.com.zip XSS利用教程-shgcx.com.zip xss盲打渗透网站.doc XSS挖掘.ppt  ...

  10. LINUX提权笔记

    没啥技术含量,一种思路,让某些得到root权限webshell的童鞋可以快点拿到权限. 某日拿到某站webshell,RedHat 系统,Tomcat程序是root身份启动的,webshell当然也拥 ...