1.在Controllers文件夹里面新建一个控制器HomeController;
2.在默认的Index方法里面添加一个视图,名字跟Controller中的方法名一样叫Index,添加后的视图文件会在Views文件夹Home下面,名字为:Index.cshtml,Home文件夹会自动添加;
3.打开视图文件Index.cshtml,添加如下html代码:
@Html.ActionLink("登录","Login","Home")等价于<a href="/Home/Login">登录</a>
4.设置Web.config配置文件,在connectionStrings节点下添加:
<add name="connstr" connectionString="server=PC-888;user id=sa;password=123;database=sy" />
5.在Model层添加一个类UsersModel.cs,用于访问数据库的数据,代码如下:
访问前先编写SQLHelper

public int UsersLogin(string username,string password)
{
int r = (int)SQLHelper.ExecuteScalar("select count(*) from Users where username=@username and password=@password",
new SqlParameter { ParameterName = "@username", Value = username },
new SqlParameter { ParameterName = "@password", Value = ProcessHelp.MD5(password) });
return r;
}

6.在Model层添加一个类ProcessHelp.cs,用于处理常用的数据,代码如下:

public static string MD5(string toCryString)
{
MD5CryptoServiceProvider hashmd5;
hashmd5 = new MD5CryptoServiceProvider();
return BitConverter.ToString(hashmd5.ComputeHash(Encoding.Default.GetBytes(toCryString))).Replace("-", "").ToLower();
}

7.在控制器HomeController.cs下面添加一个方法:

public ActionResult Login(string n)
{
string username = Request.Form["txtname"];
string password = Request.Form["txtpwd"];
//先获取表单的值
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
{
return View();
}
UsersModel users = new UsersModel();
int r = users.UsersLogin(username, password);
if (r > )
{
return Redirect("/TIPTOP/Index");//重定向后的控制器地址,TIPTOP为控制器前面的名字,Index为方法
}
return View();
}

8.在控制器HomeController下的方法Login添加一个视图

<form action="/Home/Login" method="post">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="txtname" /></td>
</tr>
<tr>
<td>密码:</td><td><input type="password" name="txtpwd" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="btnOK" value="登录" /></td>
</tr>
</table>
</form>

等价于:

@using(Html.BeginForm())
{
<table>
<tr><td>用户名:</td><td>@Html.TextBox("txtname")</td></tr>
<tr><td>密码:</td><td>@Html.Password("txtpwd")</td></tr>
<tr><td colspan="2"><input type="submit" name="name" value="登录 " /></td></tr>
</table>
}

MVC登录案例的更多相关文章

  1. Spring Security Oauth2 单点登录案例实现和执行流程剖析

    Spring Security Oauth2 OAuth是一个关于授权的开放网络标准,在全世界得到的广泛的应用,目前是2.0的版本.OAuth2在“客户端”与“服务提供商”之间,设置了一个授权层(au ...

  2. Android first---文件读取(登录案例编写为主)

    以android登录案例来介绍文件的读取与androidAPI给予的方法 第一步:绘制界面 绘制方法:在线性布局下面设置相对布局 代码部分: <LinearLayout xmlns:androi ...

  3. ADO.NET学习系列(三)----做一个登录案例

    总体思路.根据用户输入的用户名和密码,来判断,和数据库里面存的是不是一样,如果一样就表明登录成功,否则就登录失败. 方案一: 1.select* from 表名 where username=&quo ...

  4. 基于Struts2框架实现登录案例 之 使用Struts2标签库简化表单+继承ActionSupport完成输入交验

    一,使用Struts2标签库简化表单 在文章[基于Struts2框架实现登录案例]的基础上,通过使用Struts标签库可以简化登录页面login2.jsp <%@ page language=& ...

  5. 简单登录案例(SharedPreferences存储账户信息)&联网请求图片并下载到SD卡(文件外部存储)

    新人刚学习Android两周,写一个随笔算是对两周学习成果的巩固,不足之处欢迎各位建议和完善. 这次写的是一个简单登录案例,大概功能如下: 注册的账户信息用SharedPreferences存储: 登 ...

  6. Android(java)学习笔记213:开源框架post和get方式提交数据(qq登录案例)

    1.前面提到Http的get/post方式  . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2.Android应用会经常使用http协议进行传输,网上会有很完善 ...

  7. Android(java)学习笔记212:中文乱码的问题处理(qq登录案例)

    1.我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed&q ...

  8. Spring mvc登录拦截器

    自己实现的第一个Spring mvc登录拦截器 题目要求:拒绝未登录用户进入系统,只要发现用户未登录,则将用户请求转发到/login.do要求用户登录 实现步骤: 1.在spring的配置文件中添加登 ...

  9. MVC 小案例 -- 信息管理

    前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...

随机推荐

  1. Deformity PHP Webshell、Webshell Hidden Learning

    目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...

  2. newinstance和new有什么区别

    用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩.可扩展,可重用等软件思想上解释了.Java中工厂模式经 ...

  3. jboss7.1.1配置mysql数据源

    http://blog.csdn.net/msz1992/article/details/8826754 #1.到http://www.mysql.com/downloads/connector/j/ ...

  4. 如何把项目托管到GitHub

    第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,注意它们并不等同. gitHub是全球最 ...

  5. Json序列化对象

    之前都是用的二进制的序列化方法,是.net自带的,但是最常用到的还是Json序列化 (1)只需要调用 Newtonsoft.Json.dll 即可 public class JsonTools { / ...

  6. 牛顿迭代法求n方根

    一.简单推导 二.使用 借助上述公式,理论上可以求任意次方根,假设要求a(假设非负)的n次方根,则有xn=a,令f(x)=xn-a,则只需求f(x)=0时x的值即可.由上述简单推导知,当f(x)=0时 ...

  7. [LeetCode] Copy List with Random Pointe

    题目的关键是要让新链表和原有链表发送关联,可以通过这种关联来设置新链表的random pointer 思路:将新链表的元素插入到原有链表元素的后面,如下图所示,就可以根据原有链表的radom-> ...

  8. pthread 学习系列 case2-- pthread_mutex_t

    许多互斥对象 如果放置了过多的互斥对象,代码就没有什么并发性可言,运行起来也比单线程解决方案慢.如果放置了过少的互斥对象,代码将出现奇怪和令人尴尬的错误.幸运的是,有一个中间立场.首先,互斥对象是用于 ...

  9. Ioc注解

    注解: 添加注解时,需要添加context的相关 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  10. 【原创】ui.router源码解析

    Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它 ...