Asp.Mvc 2.0实现用户登录与注销功能实例讲解(2)_实用技巧

这一节讲解下ASP.MVC 2.0的用户登录与注销功能,先讲登录,后说注销。我们这个系列讲的用户登录方式都是FORM表单验证方式。在讲之前先给大家说下<%:%>的功能,<%:%>与<%=%>功能一样,用来动态输出内容。
一、登录
1. 建立MODEL
登录的时候,我们一般只要验证用户名和密码,还有是否保存登录COOKIE,所以我们建立一个MODEL登录类,只需包括3个字段就可以。

/// <summary>
 /// 用户登录MODEL
 /// </summary>
 public class Login
 { 

  /// <summary>
  /// 用户名
  /// </summary>
  [DisplayName("用户名")]
  public string UserName
  {
   get;
   set;
  } 

  /// <summary>
  /// 密码
  /// </summary>
  [DisplayName("密码")]
  public string UserPwd
  {
   get;
   set;
  } 

  /// <summary>
  /// 是否保存COOKIE
  /// </summary>
  [DisplayName("记住我")]
  public bool RememberMe
  {
   get;
   set;
  } 

2.建立VIEW页面
同样登录的VIEW页面,同样建立一个强类型的页面,之所以喜欢建立强类型的页面,是因为页面和MODEL相关联,在页面中直接可以使用MODEL。此时页面的视图数据类应选择MvcLogin.Models.Login。

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcLogin.Models.Login>" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
 <title>Login</title>
</head>
<body>
<div style="font-size:15pt;color:Red;">
 <%if (ViewData["msg"] != null)
 {%>
 <%:ViewData["msg"].ToString()%>
 <%} %>
</div>
 <div>
 <%Html.BeginForm();%> 

 <table>
  <tr>
  <td></td>
  <td>用户登录</td>
  </tr> 

  <tr>
  <td><%:Html.LabelFor(m=>m.UserName) %></td>
  <td><%:Html.TextBoxFor(m=>m.UserName)%></td>
  </tr> 

   <tr>
  <td><%:Html.LabelFor(m=>m.UserPwd) %></td>
  <td><%:Html.PasswordFor(m=>m.UserPwd) %></td>
  </tr> 

   <tr>
  <td><%:Html.LabelFor(m=>m.RememberMe) %></td>
  <td><%:Html.CheckBoxFor(m=>m.RememberMe) %></td>
  </tr> 

 <tr>
  <td></td>
  <td><input type="submit" value="登录" /></td>
  </tr>
 </table>
 <%Html.EndForm(); %>
 </div>
</body>
</html>

Html.CheckBoxFor用来生成一个复选框按钮
3.建立controller
同样我们在controller中建立两个login方法,一个用来展现页面,一个用来点击登录按钮后判断用户名和密码

public ActionResult Login()
  {
   return View();
  } 

  [HttpPost]
  public ActionResult Login(Models.Login model)
  {
   if (new Models.SqlHelper().UserLogin(model))
   {
    //如果用户名存在,转向主页
    FormsService.SignIn(model.UserName,model.RememberMe);
    return RedirectToAction("index");
   }
   else
   {
    //登录失败,转向登录页面
    ViewData["msg"] = "登录失败";
    return View(model);
   } 

  }

第二个Login方法前面有HTTPPOST属性,所以只能接受POST请求
4.SQLHELPER中添加判断用户名和密码的方法

/// <summary>
  /// 判断用户登录是否成功
  /// </summary>
  /// <param name="model"></param>
  /// <returns></returns>
  public bool UserLogin(Login model)
  {
   strUserExist = string.Format(strUserExist, model.UserName, model.UserPwd);
   SqlConnection con = new SqlConnection(conStr);
   con.Open();
   SqlCommand cmd = new SqlCommand(strUserExist, con);
   SqlDataAdapter adp = new SqlDataAdapter(cmd);
   DataSet ds = new DataSet();
   adp.Fill(ds);
   con.Close();
   if (ds != null && ds.Tables[0].Rows.Count > 0)
   {
    return true;
   }
   return false;
  }

5.运行登录页面
此时我们在页面中输入URL,就会转向登录页面,
效果如下:

点击登录,登录成功后转向首页,登录失败返回本页面,并显示提示信息。
点击登录的时候,是POST提交方式,会调用publicActionResult Login(Models.Login model)方法。
登录失败页面如下

登录成功页面如下

二.注销
登录成功后,转向首页,在首页上我们会生成注销连接。

 <p style="font-size:15pt; color:Red;">
  <%if (Request.IsAuthenticated)
   {%>
   欢迎您<%:Page.User.Identity.Name%>! 

   <%:Html.ActionLink("注销", "LoginOff")%>
   <%}
   else
   {%>
   <%:Html.ActionLink("登录", "Login")%>
   <%} %>
  </p>

这里介绍下Html.ActionLink方法,
Html.ActionLink用来生成一个链接,第一个参数代表链接的问题,第二个参数代表的是actionname,可以理解为链接的页面。

由以上代码可以看出,注销链接指向LoginoFF.,也就是controller中的loginoff action方法,所以我们在controller中添加一个一个loginoff方法,执行完loginoff方法后,会转向INDEX首页

<span style="font-family:Microsoft YaHei;font-size:16px;"> </span>/// <summary>
  /// 用户注销
  /// </summary>
  /// <returns></returns>
  public ActionResult LoginOff()
  {
   FormsService.SignOut();
   return RedirectToAction("index");
  }

以上就是Asp.Mvc 2.0实现用户登录与注销功能实例讲解,大家可以在自己的网站上进行实践了,希望在此基础上可以有所创新和完善。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Asp.Mvc
用户登录与注销
pore5.0实例讲解、plc编程实例讲解、python脚本实例讲解、实例讲解、三菱plc编程实例讲解,以便于您获取更多的相关知识。

时间: 2024-11-08 13:46:42

Asp.Mvc 2.0实现用户登录与注销功能实例讲解(2)_实用技巧的相关文章

Asp.Mvc 2.0用户的编辑与删除实例讲解(5)_实用技巧

这一节来给大家演示下怎么对用户信息进行修改和删除用户,主要包括以下内容 1.显示所有用户 2.编辑用户 3.删除用户   1.显示所有用户  我们把所有用户信息查询出来,以表格形式在页面上显示,效果图如下:   首先把所有用户信息显示在index页面上.找到index页面对应的controller,然后查找出所有用户信息,把查找出的用户集合放在viewdata里面  Controller代码: public ActionResult Index() { //查询出所有用户 DataSet ds

Asp.Mvc 2.0用户服务器验证实例讲解(4)_实用技巧

这一节给大家讲解下ASP.NET MVC 2.0的服务器端验证的用法.大家知道,一个项目只用JS客户端验证是不安全的,用户可以禁用JS来绕过客户端验证,所以必须有服务器端验证. 关于服务器端验证,主要调用System.ComponentModel.DataAnnotations命名空间里面的类库. 咱们这次还是以注册页面为例来讲解服务器端验证,主要对注册页面完成以下验证 1.用户名不能为空 2.密码不能为空,密码长度不能小于5位数, 3.密码和确认密码输入必须一样 4.邮件格式必须正确 咱们先看

ASP.NET MVC5网站开发用户修改资料和密码(六)_实用技巧

在上一篇文章网站开发(五)中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 现完善昨天的登录代码: 一.用户导航菜单这个就是侧栏的导航,以后所有控制器中action名都为Menu.目标效果如下: 先UserController添加Menu action.直接返回分布视图.右键添加视图 <div class="panel panel-primary">

Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现_实用技巧

兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经历了好几天的不停的钻牛角尖,终于将这个二货弄出来了.真是煞费苦心啊.但是做出来的瞬间还是蛮开心的. 第一步:我们需要加载几个JS库.jquery库.jquery.form.js库. 下载这两个库,并引用到页面中. 以下为页面中 JS 代码: 复制代码 代码如下:   function upload() {            var options = {                type: "PO

ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法_实用技巧

ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法来用LinkButton的OnClick事件模拟一个事件触发的过程,具体代码如下: 客户端: <asp:FileUpload ID="fuPhoto" onchange="javascript:__doPostBack('lbUploadPhoto','')" r

asp.net分页控件使用详解【附实例下载】_实用技巧

一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 2.写一个Repeater列表控件用于显示数据 <asp:Repeater ID

Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码_实用技巧

1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间 using System.Web.Security; 复制代码 代码如下: Users ModelUser = new Users() { ID = 10000, Name = UserName, UserName = UserName, PassWord = PassWord, Roles =

灵活掌握asp.net中gridview控件的多种使用方法(下)_实用技巧

继续上篇文章的学习<灵活掌握asp.net中gridview控件的多种使用方法(上)>,在此基础上巩固gridview控件的操作使用,更上一层楼. 11.GridView实现用"..."代替超长字符串:效果图:   解决方法:数据绑定后过滤每一行即可 for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv; string gIntro; if (GridView1.PageInde

灵活掌握asp.net中gridview控件的多种使用方法(上)_实用技巧

灵活使用asp.net中gridview控件的方法有很多种,本文内容很富,希望大家都能有所收获. 1.GridView无代码分页排序: 效果图: 小提示: 1.AllowSorting设为True,aspx代码中是AllowSorting="True": 2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12". 3.默认的是单向排序的,右击GridView弹出"属性",选择AllowSort