本文原创,转载请说明,本文地址:http://hi.baidu.com/44498/blog/item/59db5da17d24c28146106478.html

进行本次项目实战,需要有一定的C#基础知识,所以,在初期的几篇里面,我在文中尽可能的多贴图以进行示例,以后逐渐减少图片说明。

昨天已经介绍了流程和基本功能,今天简单的介绍一下用户登录模块的做法。

不要担心,非常简单。

打开Login.aspx页面,这是我们昨天设计的空白页面,用户登录,现在,我们来完善它的外观和功能。

简单的登录需要一个账号输入框,一个密码输入框,以及一个提交按钮;如图所示:


当然,喜欢用ASP.NET的标准控件库也行,喜欢用HTML组的控件也可以。

在输入密码的时候,都是以"*"号密文显示的,那么我们要调整一下密码框的属性,指定其类型是password类型。如图:

界面设计完毕,是个什么样子呢?大概的看一下吧,还算说得过去。

【如果要更好看,当然需要美工人员的帮助】

然后,该实现登录的功能了吧?

先谈谈我们的目标,也就是输入账号和密码以后,如果通过验证,则跳转到Default.aspx页面,提示登录成功,反之,则给予相应的提示。

账号和密码保存在哪里呢?当然是数据库里。

好,我们来创建一个数据库吧。【我这里使用的是SQL SERVER 2005,当然,你用其他的也行】

打开红圈选中的 SQL Server Management Studio ,其实也就等同于SQL SERVER 2000里的企业管理器。

然后,创建一个数据库,名称叫做PhotoDB。如图:

对着数据库三个字点击鼠标右键,选择新建数据库,然后名称输入PhotoDB。

然后,创建一个表,叫做ACCOUNT,保存我们的用户名和密码。

创建表也是可视化的向导操作,我就不截图演示了。

表结构如下:

TABLE NAME ACCOUNT

ID     USERID USERPWD

初期结构就先这样,以后的模块有需要,我们再做相应的调整即可。

然后插入一条记录,比如,我的账号是test,密码是123。

OK,数据库创建好了。我们如何通过它来验证我们的用户登录模块呢?

------------------------------------

分析流程:用户打开login.aspx页面,然后输入账号,密码,点击提交按钮,连接数据库,验证,出结果。

大概就是这么个流程。

第一步的关键在哪里?就在提交按钮被点击以后,触发的事件上。

我们打开设计页面,双击提交按钮,进入到代码里面。

如图:

进入代码文件后如图所示:


现在开始写代码?不,当然不。先来建立和数据库的一个连接吧。

在解决方案资源管理器中,鼠标右键单击网站项目,如图:

选择,“添加新项”,弹出窗体,选择 Linq To SQL 类。

然后系统提示你,是否把类文件保存到App_Code文件夹里,选择 是 ,即可。 如图:

点击“是”,稍等2,3秒,会自动打开一个界面,提供给我们存储表结构的地方。

点击“服务器资源管理器”,然后右键单击“数据连接”,选择,“添加连接”,如图:

然后弹出一个新的窗口:

要注意的是,连接字符串,我这里用的是SQL SERVER 2005 EXPRESS,所以连接字符串是.\SQLEXPRESS,如果用的是企业版,就输入 . 即可。如果是SQL SERVER 2000,输入.即可。

填写完毕,点击测试连接,如果提示连接成功,点击确定按钮即可。

然后,在左侧的服务器资源管理器里面,找到我们的ACCOUNT表,拖拽到图中红字的位置。

然后,等待1,2秒,红字所示的地方会出现我们的表结构。如图:

从图中可以看出,表结构已经成功的映射过来了。。。然后单击保存按钮即可。

这个时候,我们要开始写代码了。

在App_Code文件夹里创建一个类,名字叫做UserCon即可,然后在里面写代码,如图:

然后在这个类里面开始本项目的第一行代码的编写。【折腾这么长时间才开始写代码,其实是好事。。。】

代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public class UserCon
{
    public static CTDCDataContext Ct = new CTDCDataContext();

public static ACCOUNT UserLogin(string id, string pwd)
    {
        var u = Ct.ACCOUNT.FirstOrDefault(c => c.USERID == id && c.USERPWD == pwd);

return u;
    }
}

OK,这里是我们登录模块所需要的核心代码,其功能就是通过验证用户输入的账号和密码,然后到数据库中进行检索。代码比较简单,我就不写注释了。

------------------------------------------

这只是把代码写在了我们定义的类中,那么,如何让用户在登录的时候调用这个类里面的方法以实现登录验证的效果呢?

很简单,打开login.aspx页面的类的文件,也就是login.aspx.cs,图片太大我就不贴图了,直接上代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

}

protected void Page_PreRender(object sender, EventArgs e)
    {
        this.Text1.Focus();
    }
    protected void ButtonSub_Click(object sender, EventArgs e)
    {
        if (UserCon.UserLogin(Text1.Value.Trim(), Text2.Value.Trim()) != null)
        {
            Response.Redirect("~/Default.aspx");
        }

else
        {
            Page.ClientScript.RegisterStartupScript
              (this.GetType(), "Windows IE", "<script>alert('密码不正确!');</script>");

}   
    } 
}

从代码中可以清晰的看到,依然是从我们之前定义的那个protected void ButtonSub_Click(object sender, EventArgs e) ,按钮单击事件中调用了我们的登录模块验证方法。

那么,效果如何?

我们来试试看。

打开Login.aspx页面,然后随便输入一些字符。。。点击提交按钮。。。

结果如图:

提示密码不正确。【其实应该提示账号或密码不正确,偷个懒】

输入正确的账号test,和正确的密码123,结果如何呢?

结果如图:

可以看到,登录成功,并且成功跳转到了Default.aspx页面。

------------------------------

额,做了这么长时间的教程,好累,基本上一个登陆模块就完成了功能。

不过有些朋友可能有疑问,如果直接访问Default.aspx页面,那么岂不是跳过了我们的验证模块,

我们辛辛苦苦的写代码【尽管只有不到10行就实现了】岂不是白费力气?

没关系,这个问题更简单,下一次,我们来解决这个问题,

并且涉及到全新的模块设计和功能实现。。。

-------------------------------

谢谢。同时也希望能对新人有所帮助。。。

ASP.NET入门篇【项目实战】打造一个自己的相册(二)登录模块相关推荐

  1. Vue项目实战之电商后台管理系统(二) 主页模块

    前言 目录 前言 一.主页布局 1.1 整体布局 1.2 头部区域布局 1.3 左侧菜单布局 1.3.1 静态布局 1.3.2 通过axios请求拦截器来进行权限验证 1.3.3 通过axios获取左 ...

  2. 嵌入式入门和项目实战开发【菜鸟内心深处最真实感想篇】

    菜鸟 参加嵌入式入门和项目实战开发后[终于拿到年到10万了]--千真万确!!绝无虚言!!!        这里述说我菜鸟学习嵌入式的内心深处最真实感受!!![希望大家不要拍砖]我只是我的学习嵌入式过程 ...

  3. 视频教程-20年Nodejs教程零基础入门到项目实战前端视频教程-Node.js

    20年Nodejs教程零基础入门到项目实战前端视频教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务 ...

  4. 5G 时代的 Android App 开发入门与项目实战

    随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑.智能电视.车载大屏.智能家居.智能手表等诸多设备,Android开发依然是前景可期的IT岗位. 当然,整个社会正在迈向5G时代 ...

  5. ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记

    任务24:集成ASP.NETCore Identity 之前在 Index 页面写了一个 strong 标签,需要加个判断再显示,不然为空没有错误的时候也会显示 @if (!ViewContext.M ...

  6. ASP.NET Core分布式项目实战(Consent 确认逻辑实现)--学习笔记

    任务22:Consent 确认逻辑实现 接下来,我们会在上一节的基础上添加两个按钮,同意和不同意,点击之后会把请求 post 到 ConsentController 处理,如果同意会通过 return ...

  7. ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记

    任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...

  8. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记

    任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContex ...

  9. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

    任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): ASP.NET Core快速入门(第5章:认证与授权)--学习笔记 A ...

  10. ASP.NET Core分布式项目实战(详解oauth2授权码流程)--学习笔记

    最近公司产品上线,通宵加班了一个月,一直没有更新,今天开始恢复,每日一更,冲冲冲 任务13:详解oauth2授权码流程 我们即将开发的产品有一个用户 API,一个项目服务 API,每个服务都需要认证授 ...

最新文章

  1. Office 2010 64位版本
  2. 打开Eclipse时出现Failed to create the Java Virtual Machine
  3. C 语言 *** glibc detected *** free(): invalid next size (fast): 0x0000000000be1010 ***
  4. datetimepicker时间控件
  5. 1-5-20:球弹跳高度的计算
  6. 【搜索引擎】Smartsys部署ES的准备工作
  7. 史上最详细 最官方的 SpringBoot和SpringCloud的版本选择!!!! 绝对让你心服口服的版本选择方式!!!
  8. 无需predetermine一条路
  9. 【Python】self是干啥的?
  10. apache站点优化—数据压缩
  11. 堆排序(利用最大堆)
  12. 12.1 Bootstrap介绍
  13. POJ - 2348 Euclid's Game(博弈)
  14. html5在线音乐列表播放器,HTML5列表音乐播放器SMusic
  15. 你是不是已经超纲了?一文解决JavaWeb中要求的HTML,是什么样的?
  16. [转]资本经营董事长班告诉你:不只企业有商业模式,个人商业价值更重要
  17. 强烈推荐!商汤-港中文MMLab开源图像视频超分辨率工具箱MMSR
  18. 数据结构与算法 第三章 树以及相关遍历方法
  19. TrueCrypt加密:TrueCrypt Mount加载加密卷(2)
  20. VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti

热门文章

  1. 中国人民公安大学 网络对抗技术 15网安六区 杨益 201521460031
  2. the type xxx cannot be resoved,It is indirectly referenced from required .class files错误.....
  3. 贯珠者说—一切荣誉归老板
  4. java日历记事本_求java实现日历记事本
  5. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 附录一 物理层与通信基础
  6. CLOUDXNS 使用体验
  7. 2020.7.25 PAT线上考试后记
  8. WIN10使用内置Check Point Capsule
  9. QPS、TPS、RT、并发用户数、吞吐量
  10. 火火火的圣诞帽!微信朋友都给自己头像带上了!