日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录

發布時間:2025/3/17 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列目錄

我們之前做了驗證碼,登錄界面,卻沒有登錄實際的代碼,我們這次先把用戶登錄先完成了,要不權限是講不下去了

把我們之前的表更新到EF中去

登錄在Account控制器,所以我們要添加Account的Model,BLL,DAL

AccountModel我們已經創建好了,下面是DAL和BLL的類

using System; using System.Collections.Generic; using System.Linq; using System.Text; using App.Models;namespace App.IDAL {public interface IAccountRepository{SysUser Login(string username, string pwd);} } IAccountRepository using System; using System.Collections.Generic; using System.Linq; using System.Text; using App.Models; using App.IDAL;namespace App.DAL {public class AccountRepository : IAccountRepository,IDisposable{public SysUser Login(string username, string pwd){using (DBContainer db = new DBContainer()){SysUser user = db.SysUser.SingleOrDefault(a => a.UserName == username && a.Password == pwd);return user;}}public void Dispose(){ }} } AccountRepository using System; using System.Collections.Generic; using System.Linq; using System.Text; using App.Models;namespace App.IBLL {public interface IAccountBLL{SysUser Login(string username, string pwd);} } IAccountBLL using System.Linq; using System.Text; using App.IBLL; using App.BLL.Core; using Microsoft.Practices.Unity; using App.IDAL; using App.Models; using App.Common; namespace App.BLL {public class AccountBLL:BaseBLL,IAccountBLL{[Dependency]public IAccountRepository accountRepository { get; set; }public SysUser Login(string username, string pwd){return accountRepository.Login(username, pwd);}} } AccountBLL

注入到容器

container.RegisterType<IAccountBLL, AccountBLL>();container.RegisterType<IAccountRepository, AccountRepository>();

然后回到Account的控制器上

定義?

[Dependency]public IAccountBLL accountBLL { get; set; }

在?public JsonResult Login(string UserName, string Password, string Code)

方法下添加代碼

if (Session["Code"] == null)return Json(JsonHandler.CreateMessage(0, "請重新刷新驗證碼"), JsonRequestBehavior.AllowGet);if (Session["Code"].ToString().ToLower() != Code.ToLower())return Json(JsonHandler.CreateMessage(0, "驗證碼錯誤"), JsonRequestBehavior.AllowGet);SysUser user = accountBLL.Login(UserName, ValueConvert.MD5(Password));if (user == null){return Json(JsonHandler.CreateMessage(0, "用戶名或密碼錯誤"), JsonRequestBehavior.AllowGet);}else if (!Convert.ToBoolean(user.State))//被禁用 {return Json(JsonHandler.CreateMessage(0, "賬戶被系統禁用"), JsonRequestBehavior.AllowGet);}AccountModel account = new AccountModel();account.Id = user.Id;account.TrueName = user.TrueName;Session["Account"] = account;return Json(JsonHandler.CreateMessage(1, ""), JsonRequestBehavior.AllowGet); View Code

其中用到一個加密類處理,這里用的是一個MD5大家可以用自己的加密方式

然而這個類里面包含了其他的一些字符串處理,算是在這里共享給大家。不合適就刪掉了

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization; using System.Security.Cryptography; namespace YmNets.Common {public static partial class ValueConvert{/// <summary>/// 使用MD5加密字符串/// </summary>/// <param name="str">待加密的字符</param>/// <returns></returns>public static string MD5(this string str){if (string.IsNullOrEmpty(str)){return string.Empty;}MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();byte[] arr = UTF8Encoding.Default.GetBytes(str);byte[] bytes = md5.ComputeHash(arr);str = BitConverter.ToString(bytes);//str = str.Replace("-", "");return str;}/// <summary>/// 將最后一個字符串的路徑path替換/// </summary>/// <param name="str"></param>/// <param name="path"></param>/// <returns></returns>public static string Path(this string str, string path){int index = str.LastIndexOf('\\');int indexDian = str.LastIndexOf('.');return str.Substring(0, index + 1) + path + str.Substring(indexDian);}public static List<string> ToList(this string ids){List<string> listId = new List<string>();if (!string.IsNullOrEmpty(ids)){var sort = new SortedSet<string>(ids.Split(','));foreach (var item in sort){listId.Add(item);}}return listId;}/// <summary>/// 從^分割的字符串中獲取多個Id,先是用 ^ 分割,再使用 & 分割/// </summary>/// <param name="ids">先是用 ^ 分割,再使用 & 分割</param>/// <returns></returns>public static List<string> GetIdSort(this string ids){List<string> listId = new List<string>();if (!string.IsNullOrEmpty(ids)){var sort = new SortedSet<string>(ids.Split('^').Where(w => !string.IsNullOrWhiteSpace(w) && w.Contains('&')).Select(s => s.Substring(0, s.IndexOf('&'))));foreach (var item in sort){listId.Add(item);}}return listId;}/// <summary>/// 從,分割的字符串中獲取單個Id/// </summary>/// <param name="ids"></param>/// <returns></returns>public static string GetId(this string ids){if (!string.IsNullOrEmpty(ids)){var sort = new SortedSet<string>(ids.Split('^').Where(w => !string.IsNullOrWhiteSpace(w) && w.Contains('&')).Select(s => s.Substring(0, s.IndexOf('&'))));foreach (var item in sort){if (!string.IsNullOrWhiteSpace(item)){return item;}}}return null;}/// <summary>/// 將String轉換為Dictionary類型,過濾掉為空的值,首先 6 分割,再 7 分割/// </summary>/// <param name="value"></param>/// <returns></returns>public static Dictionary<string, string> StringToDictionary(string value){Dictionary<string, string> queryDictionary = new Dictionary<string, string>();string[] s = value.Split('^');for (int i = 0; i < s.Length; i++){if (!string.IsNullOrWhiteSpace(s[i]) && !s[i].Contains("undefined")){var ss = s[i].Split('&');if ((!string.IsNullOrEmpty(ss[0])) && (!string.IsNullOrEmpty(ss[1]))){queryDictionary.Add(ss[0], ss[1]);}}}return queryDictionary;}/// <summary>/// 得到對象的 Int 類型的值,默認值0/// </summary>/// <param name="Value">要轉換的值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值0</returns>public static int GetInt(this object Value){return GetInt(Value, 0);}/// <summary>/// 得到對象的 Int 類型的值,默認值0/// </summary>/// <param name="Value">要轉換的值</param>/// <param name="defaultValue">如果轉換失敗,返回的默認值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值0</returns>public static int GetInt(this object Value, int defaultValue){if (Value == null) return defaultValue;if (Value is string && Value.GetString().HasValue() == false) return defaultValue;if (Value is DBNull) return defaultValue;if ((Value is string) == false && (Value is IConvertible) == true){return (Value as IConvertible).ToInt32(CultureInfo.CurrentCulture);}int retVal = defaultValue;if (int.TryParse(Value.ToString(), NumberStyles.Any, CultureInfo.CurrentCulture, out retVal)){return retVal;}else{return defaultValue;}}/// <summary>/// 得到對象的 String 類型的值,默認值string.Empty/// </summary>/// <param name="Value">要轉換的值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值string.Empty</returns>public static string GetString(this object Value){return GetString(Value, string.Empty);}/// <summary>/// 得到對象的 String 類型的值,默認值string.Empty/// </summary>/// <param name="Value">要轉換的值</param>/// <param name="defaultValue">如果轉換失敗,返回的默認值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值 。</returns>public static string GetString(this object Value, string defaultValue){if (Value == null) return defaultValue;string retVal = defaultValue;try{var strValue = Value as string;if (strValue != null){return strValue;}char[] chrs = Value as char[];if (chrs != null){return new string(chrs);}retVal = Value.ToString();}catch{return defaultValue;}return retVal;}/// <summary>/// 得到對象的 DateTime 類型的值,默認值為DateTime.MinValue/// </summary>/// <param name="Value">要轉換的值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回的默認值為DateTime.MinValue </returns>public static DateTime GetDateTime(this object Value){return GetDateTime(Value, DateTime.MinValue);}/// <summary>/// 得到對象的 DateTime 類型的值,默認值為DateTime.MinValue/// </summary>/// <param name="Value">要轉換的值</param>/// <param name="defaultValue">如果轉換失敗,返回默認值為DateTime.MinValue</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回的默認值為DateTime.MinValue</returns>public static DateTime GetDateTime(this object Value, DateTime defaultValue){if (Value == null) return defaultValue;if (Value is DBNull) return defaultValue;string strValue = Value as string;if (strValue == null && (Value is IConvertible)){return (Value as IConvertible).ToDateTime(CultureInfo.CurrentCulture);}if (strValue != null){strValue = strValue.Replace("", "-").Replace("", "-").Replace("", "-").Replace("", ":").Replace("", ":").Replace("", ":").Replace("", ":");}DateTime dt = defaultValue;if (DateTime.TryParse(Value.GetString(), out dt)){return dt;}return defaultValue;}/// <summary>/// 得到對象的布爾類型的值,默認值false/// </summary>/// <param name="Value">要轉換的值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值false</returns>public static bool GetBool(this object Value){return GetBool(Value, false);}/// <summary>/// 得到對象的 Bool 類型的值,默認值false/// </summary>/// <param name="Value">要轉換的值</param>/// <param name="defaultValue">如果轉換失敗,返回的默認值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值false</returns>public static bool GetBool(this object Value, bool defaultValue){if (Value == null) return defaultValue;if (Value is string && Value.GetString().HasValue() == false) return defaultValue;if ((Value is string) == false && (Value is IConvertible) == true){if (Value is DBNull) return defaultValue;try{return (Value as IConvertible).ToBoolean(CultureInfo.CurrentCulture);}catch { }}if (Value is string){if (Value.GetString() == "0") return false;if (Value.GetString() == "1") return true;if (Value.GetString().ToLower() == "yes") return true;if (Value.GetString().ToLower() == "no") return false;}/// if (Value.GetInt(0) != 0) return true;bool retVal = defaultValue;if (bool.TryParse(Value.GetString(), out retVal)){return retVal;}else return defaultValue;}/// <summary>/// 檢測 GuidValue 是否包含有效的值,默認值Guid.Empty/// </summary>/// <param name="GuidValue">要轉換的值</param>/// <returns>如果對象的值可正確返回, 返回對象轉換的值 ,否則, 返回默認值Guid.Empty</returns>public static Guid GetGuid(string GuidValue){try{return new Guid(GuidValue);}catch { return Guid.Empty; }}/// <summary>/// 檢測 Value 是否包含有效的值,默認值false/// </summary>/// <param name="Value"> 傳入的值</param>/// <returns> 包含,返回true,不包含,返回默認值false</returns>public static bool HasValue(this string Value){if (Value != null){return !string.IsNullOrEmpty(Value.ToString());}else return false;}} } ValueConvert.cs

回到前端把alert(1);替換以下代碼

$.post('/Account/Login', { UserName: $("#UserName").val(), Password: $("#Password").val(), Code: $("#ValidateCode").val() },function (data) {if (data.type == "1") {window.location = "/Home/Index"} else {$("#mes").html(data.message);}$("#Loading").hide();}, "json");return false;

可以登錄了,大家試一下吧!帳號admin,密碼admin123

總結

以上是生活随笔為你收集整理的ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。