前言:時間很快,已經快到春節的時間了,這段時間因爲生病,博客基本沒更新,因此今天寫一下咱們作的一個項目吧,是對權限的基本操做的操做,代碼也就不怎麼說了,直接上傳源碼和圖片展現,下面咱們直接進入主題介紹這個項目和一些技術點:html
1.項目所用到的技術
(1)前臺展現:ASP.NET MVC 3.0+Jquery EasyUI+Jquerygit
(2)開發環境:VS2012github
(3)數據庫:SQL Server 2012面試
(4)代碼管理:SVN數據庫
(5)用到的技術:ASP.NET MVC,EF框架,Jquery EasyUI,Log4Net,VSS,微軟T4模版安全
(6)數據庫腳本在本項目的APP_Data文件夾下面,能夠直接執行EF框架自動生成。微信
2.系統後臺通用權限管理
(1) 什麼是權限?在電子商務等信息系統中,任何一個操做都要進行權限的校驗,若是有訪問的權限則讓用戶繼續訪問,若是沒有則終止這條請求,一句話,權限就是爲了分類明確,安全性考慮。mvc
(2)權限管理:通常指根據系統設置的安全規則或者安全策略,用戶能夠訪問並且只能訪問本身被受權的資源。框架
(3)基於用戶&動做的權限管理asp.net
(4)基於角色&動做的權限管理
(5)基於分組,角色,動做,用戶權限管理。
3.建立權限的業務模型
(1) 使用EF框架的EDMX設計器來設計數據庫的實現。
(2)注意事項:
1)使用ModelFirst的方式來設計數據庫的完成
2)主鍵若是使用Guid類型則必須去掉自動增加
3)實體全部的屬性必須設置備註
4)實體的字符串類型必須設置字符串的長度
5)命名規範必須符合要求
6)模型設計討論和評審工做
(3)權限EF框架模型設置如圖所示:
4.下面演示項目的功能
(1) 首先使用用戶名密碼都是admin登陸,這是在代碼中作得一個沒有驗證權限的管理,也就是當你使用此用戶名密碼登陸進去的話全部的權限都是能夠訪問的。
(2)登陸頁面:如圖所示:
(3)展現Admin登陸的結果,如圖所示
(4)而後咱們註冊一個用戶,如圖所示
(5)而後咱們使用剛纔的用戶登陸系統,會出現訪問爲空的現象,如圖所示:
(6)咱們能夠給用戶設置權限和角色,在上面有選擇設置用戶角色和設置用戶特殊權限的信息設置,咱們給hjl用戶設置了超級管理員的角色,如圖所示:
(7)咱們在使用hjl登陸,如圖所示:
(8)爲何權限管理裏面沒有數據呢,那是由於此用戶沒有改權限查看這個,若是想要顯示的話還要進行權限的設置,這裏我就不設置了。
5.展現整個網站佈局效果圖:
6.源碼下載
Kencery返回本系列開篇
做者:韓迎龍(Kencery)
出處:http://www.cnblogs.com/hanyinglong GitHub開源項目:https://github.com/kencery
MVC/.NET羣:159227188
本頁版權歸做者和博客園全部,歡迎轉載,但未經做者贊成必須保留此段聲明, 且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利
/// <summary>
/// 執行SQL對象返回受影響的行數
/// </summary>
/// <param name="strSql">SQL語句</param>
/// <param name="parameters">參數</param>
/// <returns></returns>
public
int
ExcuteSql(
string
strSql,
object
[] parameters)
{
return
EFContextFactory.GetCurrentDbContext().Database.ExecuteSqlCommand(strSql, parameters);
}
/// <summary>
/// 執行SQL對象,返回查詢到的實體集合
/// </summary>
/// <typeparam name="T">返回的實體集合</typeparam>
/// <param name="strSql">SQL語句</param>
/// <param name="parameters">傳遞的參數</param>
/// <returns></returns>
public
IQueryable<T> ExecuteSql<T>(
string
strSql,
object
[] parameters)
{
return
EFContextFactory.GetCurrentDbContext().Database.SqlQuery<T>(strSql, parameters).AsQueryable();
}
/// <summary>
/// 執行SQL對象,返回查詢到的實體集合
/// </summary>
/// <typeparam name="T">返回的實體集合</typeparam>
/// <param name="strSql">SQL語句</param>
/// <returns></returns>
public
IQueryable<T> ExecuteSql<T>(
string
strSql)
{
return
EFContextFactory.GetCurrentDbContext().Database.SqlQuery<T>(strSql).AsQueryable();
}
上面就是封裝的寫SQL語句的方法,能夠直接封裝到DbSession中去調用這些方法