1. 程式人生 > >【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (16)原始碼分享二:登入功能以及UI、資料庫、倉儲原始碼分享

【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (16)原始碼分享二:登入功能以及UI、資料庫、倉儲原始碼分享

  1 using Common;
  2 using Service.IService;
  3 using System;
  4 using System.Collections.Generic;
  5 using System.Linq;
  6 using System.Web;
  7 using System.Web.Mvc;
  8 
  9 namespace WebPage.Areas.SysManage.Controllers
 10 {
 11     public class AccountController : Controller
 12     {
13 #region 宣告容器 14 /// <summary> 15 /// 使用者管理 16 /// add yuangang by 2016-05-16 17 /// </summary> 18 IUserManage UserManage { get; set; } 19 /// <summary> 20 /// 使用者線上管理 21 /// </summary> 22 IUserOnlineManage UserOnlineManage { get
; set; } 23 /// <summary> 24 /// 日誌記錄 25 /// </summary> 26 log4net.Ext.IExtLog log = log4net.Ext.ExtLogManager.GetLogger("dblog"); 27 #endregion 28 29 #region 基本檢視 30 public ActionResult Index() 31 { 32 //
移除Session 33 SessionHelper.Remove("CurrentUser"); 34 CookieHelper.ClearCookie("cookie_rememberme"); 35 return View(); 36 } 37 /// <summary> 38 /// 登入驗證 39 /// add yuangang by 2016-05-16 40 /// </summary> 41 [ValidateAntiForgeryToken] 42 public ActionResult Login(Domain.SYS_USER item) 43 { 44 var json = new JsonHelper() { Msg = "登入成功", Status = "n" }; 45 try 46 { 47 //獲取表單驗證碼 48 var code = Request.Form["code"]; 49 if (Session["gif"] != null) 50 { 51 //判斷使用者輸入的驗證碼是否正確 52 if (!string.IsNullOrEmpty(code) && code.ToLower() == Session["gif"].ToString().ToLower()) 53 { 54 //呼叫登入驗證介面 返回使用者實體類 55 var users = UserManage.UserLogin(item.ACCOUNT.Trim(), item.PASSWORD.Trim()); 56 if (users != null) 57 { 58 //是否鎖定 59 if (users.ISCANLOGIN) 60 { 61 json.Msg = "使用者已鎖定,禁止登入,請聯絡管理員進行解鎖"; 62 log.Warn(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 63 return Json(json); 64 } 65 66 var acconut = this.UserManage.GetAccountByUser(users); 67 68 //系統訪問正常 69 if (acconut.System_Id.Count > 0) 70 { 71 //是否啟用單使用者登入 72 if (System.Configuration.ConfigurationManager.AppSettings["IsSingleLogin"] == "True" ) 73 { 74 var UserOnline = UserOnlineManage.LoadListAll(p => p.FK_UserId == users.ID).FirstOrDefault(); 75 if(UserOnline!=null && UserOnline.IsOnline) 76 { 77 json.Msg = "當前使用者已登入,系統不允許重複登入!登入IP:" + UserOnline.UserIP; 78 log.Error(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "重複登入:" + json.Msg); 79 } 80 else 81 { 82 //寫入Session 當前登入使用者 83 SessionHelper.SetSession("CurrentUser", acconut); 84 85 //記錄使用者資訊到Cookies 86 string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + 87 "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + 88 Session.SessionID + "\"}"; 89 CookieHelper.SetCookie("cookie_rememberme", new Common.CryptHelper.AESCrypt().Encrypt(cookievalue), 90 null); 91 92 json.Status = "y"; 93 json.ReUrl = "/Sys/Home/Index"; 94 log.Info(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 95 } 96 } 97 else 98 { 99 //寫入Session 當前登入使用者 100 SessionHelper.SetSession("CurrentUser", acconut); 101 102 //記錄使用者資訊到Cookies 103 string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + 104 "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + 105 Session.SessionID + "\"}"; 106 CookieHelper.SetCookie("cookie_rememberme", new Common.CryptHelper.AESCrypt().Encrypt(cookievalue), 107 null); 108 109 json.Status = "y"; 110 json.ReUrl = "/Sys/Home/Index"; 111 log.Info(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 112 } 113 } 114 else 115 { 116 json.Msg = "站點來源不可信,系統拒絕登入"; 117 log.Warn(Utils.GetIP(), "其他系統訪問者", "", "Login", "其他系統登入失敗,原因:系統驗證錯誤,系統拒絕登入"); 118 } 119 120 } 121 else 122 { 123 json.Msg = "使用者名稱或密碼不正確"; 124 log.Error(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 125 } 126 } 127 else 128 { 129 json.Msg = "驗證碼不正確"; 130 log.Error(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 131 } 132 } 133 else 134 { 135 json.Msg = "驗證碼已過期,請重新整理驗證碼"; 136 log.Error(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 137 } 138 } 139 catch (Exception e) 140 { 141 json.Msg = e.Message; 142 log.Error(Utils.GetIP(), item.ACCOUNT, Request.Url.ToString(), "Login", "系統登入,登入結果:" + json.Msg); 143 } 144 return Json(json, JsonRequestBehavior.AllowGet); 145 } 146 #endregion 147 148 #region 幫助方法 149 /// <summary> 150 /// 驗證碼 151 /// </summary> 152 public FileContentResult ValidateCode() 153 { 154 string code = ""; 155 System.IO.MemoryStream ms = new Models.verify_code().Create(out code); 156 Session["gif"] = code;//驗證碼儲存在Session中,供驗證。 157 Response.ClearContent();//清空輸出流 158 return File(ms.ToArray(), @"image/png"); 159 } 160 #endregion 161 } 162 }

相關推薦

無私分享入門精通ASP.NET MVC0開始一起框架專案7.2 模組管理模組的新增修改刪除

索引 簡述 今天我們來做模組管理的 新增、修改、刪除 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了

無私分享入門精通ASP.NET MVC0開始一起框架專案5.3 登入功能的實現豐富資料表建立關聯

1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_CODE] Script Date: 2016/5/17 9:30:01 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET

無私分享入門精通ASP.NET MVC0開始一起框架專案 10部門管理崗位管理和員工管理

1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_POST_USER] Script Date: 2016/6/20 16:28:44 ******/ 4 SET ANSI_NULLS ON 5 GO

無私分享入門精通ASP.NET MVC0開始一起框架專案 12程式與資料備份

索引 簡述 程式檔案備份與資料備份 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始

無私分享入門精通ASP.NET MVC0開始一起框架專案5.4 登入功能的實現建立與登入使用者相關的介面和實現類

索引 簡述 今天我們建立幾個與登入使用者相關的資料表的介面和實現類 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了

無私分享入門精通ASP.NET MVC0開始一起框架專案 14資料庫釋出專案

索引 簡述 總結一 整個系列其實還包括專案管理、考勤簽到、郵件、內部聊天等等,這個東西是做不完的,如果繼續還有新聞系統、靜態生成等等等等.... 其中,靜態頁生成在我的部落格中可以找到,三種方式: 第一種 就是類似網上的很多CMS一樣 採用標籤替換,但這種方式是不推薦的,特別是在我們.Net中,

無私分享入門精通ASP.NET MVC0開始一起框架專案 16原始碼分享登入功能以及UI資料庫倉儲原始碼分享

1 using Common; 2 using Service.IService; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web;

無私分享入門精通ASP.NET MVC0開始一起框架專案5.5 登入功能的實現完善登入功能

索引 簡述 今天我們來完善我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開

無私分享入門精通ASP.NET MVC0開始一起框架專案 登入介面前端樣式和特效

很多朋友要UI,我也說過,後臺的UI就是BootStrap,網上很多的。也有朋友喜歡LZ的登入,LZ的登入介面也是網上找的,然後稍微做了下修改。 不過既然大家喜歡,那麼LZ就分享給大家。 1、登入頁面效果 2、登入頁面程式碼 1 @{ 2 Layout = null; 3

無私分享入門精通ASP.NET MVC0開始一起框架專案5.2 登入功能的實現介面注入log4net的使用

索引 簡述 前兩天事情比較多,耽誤更新了,希望大家多多包涵,今天我們繼續做我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行

無私分享入門精通ASP.NET MVC0開始一起框架專案5.1 登入功能的實現開始接觸Spring IOCDI

索引 簡述 今天我們做登入,今天的東西比較多,用到了Spring的IOC和DI、介面的使用、驗證等,希望大家多多討論 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些

無私分享入門精通ASP.NET MVC0開始一起框架專案 15原始碼分享修改倉儲IRepositoryRepositoryBase

1 #region 獲取多條資料操作 2 3 /// <summary> 4 /// 返回IQueryable集合,延時載入資料 5 /// </summary> 6 /// &l

無私分享入門精通ASP.NET MVC0開始一起框架專案7.1 模組管理驗證許可權展示模組列表

索引 簡述 今天我們來做模組管理的 展示 模組列表 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。

無私分享入門精通ASP.NET MVC0開始一起框架專案9 角色管理分配許可權

索引 簡述 今天我們來做角色的管理 和 角色許可權分配 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解

無私分享入門精通ASP.NET MVC0開始一起框架專案1搭建MVC環境 註冊區域

索引 簡述 從今天開始,我們從0開始搭建一個框架,並且完成一個任務管理系統的專案。這並不是什麼大專案,只是對於不熟悉MVC以及不熟悉面向介面開發和依賴注入的朋友們有所啟發,因為是從0開始,所以有些地方比較囉嗦,希望大家理解! 希望新手朋友們拋棄“拿來主義”,動手跟著一步一步的做,當做完這個框架和專案

無私分享入門精通ASP.NET MVC0開始一起框架專案6 控制器基類 主要登入使用者許可權認證日誌記錄等工作

索引 簡述 今天我們來寫一個控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,

無私分享入門精通ASP.NET MVC0開始一起框架專案8 許可權管理自定義許可權擴充套件許可權

索引 簡述 今天我們來做許可權的管理,這篇比較多 希望新手朋友慢慢消化 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的

無私分享入門精通ASP.NET MVC0開始一起框架專案 13客戶管理

索引 簡述 簡單的客戶管理 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始 一、資料

無私分享入門精通ASP.NET MVC0開始一起框架專案3公共基礎資料操作類 RepositoryBase

索引 簡述 今天我們寫一個基礎資料的操作類,如果裡面有大家不理解的地方,可採取兩種方式,第一:提出來,第二:會用就行。這個類呢我一般不去修改它,因為基礎操作類,大家也可以直接拷貝到自己的專案中。 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大

無私分享入門精通ASP.NET MVC0開始一起框架專案 11檔案管理

索引 簡述 檔案管理,這個比較雞肋 但是有些方法 大家可以參考下 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,