国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

詳解ASP.NET MVC Form表單驗證

2024-07-10 12:47:25
字體:
來源:轉載
供稿:網友

一、前言

  關于表單驗證,已經有不少的文章,相信Web開發人員也都基本寫過,最近在一個個人項目中剛好用到,在這里與大家分享一下。本來想從用戶注冊開始寫起,但發現東西比較多,涉及到界面、前端驗證、前端加密、后臺解密、用戶密碼Hash、權限驗證等等,文章寫起來可能會很長,所以這里主要介紹的是登錄驗證和權限控制部分,有興趣的朋友歡迎一起交流。

  一般驗證方式有Windows驗證和表單驗證,web項目用得更多的是表單驗證。原理很簡單,簡單地說就是利用瀏覽器的cookie,將驗證令牌存儲在客戶端瀏覽器上,cookie每次會隨請求發送到服務器,服務器驗證這個令牌。通常一個系統的用戶會分為多種角色:匿名用戶、普通用戶和管理員;這里面又可以再細分,例如用戶可以是普通用戶或Vip用戶,管理員可以是普通管理員或超級管理員等。在項目中,我們有的頁面可能只允許管理員查看,有的只允許登錄用戶查看,這就是角色區分(Roles);某些特別情況下,有些頁面可能只允許叫“張三”名字的人查看,這就是用戶區分(Users)。

  我們先看一下最后要實現的效果:

1.這是在Action級別的控制。

public class Home1Controller : Controller{  //匿名訪問  public ActionResult Index()  {    return View();  }  //登錄用戶訪問  [RequestAuthorize]  public ActionResult Index2()  {    return View();  }  //登錄用戶,張三才能訪問  [RequestAuthorize(Users="張三")]  public ActionResult Index3()  {    return View();  }  //管理員訪問  [RequestAuthorize(Roles="Admin")]  public ActionResult Index4()  {    return View();  }}

2.這是在Controller級別的控制。當然,如果某個Action需要匿名訪問,也是允許的,因為控制級別上,Action優先級大于Controller。

//Controller級別的權限控制[RequestAuthorize(User="張三")]public class Home2Controller : Controller{  //登錄用戶訪問  public ActionResult Index()  {    return View();  }  //允許匿名訪問  [AllowAnonymous]  public ActionResult Index2()  {    return View();  }}

3.Area級別的控制。有時候我們會把一些模塊做成分區,當然這里也可以在Area的Controller和Action進行標記。

  從上面可以看到,我們需要在各個地方進行標記權限,如果把Roles和Users硬寫在程序中,不是很好的做法。我希望能更簡單一點,在配置文件進行說明。例如如下配置:

<?xml version="1.0" encoding="utf-8" ?><!--  1.這里可以把權限控制轉移到配置文件,這樣就不用在程序中寫roles和users了  2.如果程序也寫了,那么將覆蓋配置文件的。  3.action級別的優先級 > controller級別 > Area級別  --><root> <!--area級別--> <area name="Admin">  <roles>Admin</roles> </area>   <!--controller級別--> <controller name="Home2">  <user>張三</user> </controller>   <!--action級別--> <controller name="Home1">  <action name="Inde3">   <users>張三</users>  </action>  <action name="Index4">   <roles>Admin</roles>  </action> </controller></root>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 星子县| 大姚县| 弋阳县| 炉霍县| 保定市| 泰兴市| 天峻县| 毕节市| 化州市| 西林县| 静乐县| 永顺县| 大理市| 惠来县| 义马市| 兴宁市| 青岛市| 陇南市| 云南省| 汉阴县| 定南县| 宜宾市| 丰县| 琼结县| 手机| 威海市| 桑日县| 新宁县| 宾阳县| 广州市| 金坛市| 藁城市| 偃师市| 建阳市| 五大连池市| 泸西县| 宜都市| 淳化县| 出国| 五家渠市| 丽水市|