ASP.Net實現使用者許可權管理
<?xml version="1.0" encoding="UTF-8"?>
一、 ASP.Net提供對於許可權安全提供的技術
Authentication(驗證) MembershipProvider (用儲存的資訊驗證使用者是 誰)
Authorization(授權) RoleProvider (實現使用者和角色的對映,允許使用者 可以做什麼 )
二、 Membership Service介紹
Membership公開了大部分的Membership Service API, 允許執行各種任務:
建立 /更新/ 刪除/找回 Membership使用者。
MembershipUser 是已存在的membership 使用者的一個執行時表現。允許:
更改 /重置密碼
Membership類中的所有方法都是接受 /返回一個或者一組MembershipUser的例項
三、 RoleProvider介紹
RoleProvider提供了基於資料儲存的角色管理, 可以從資料來源儲存或者讀取角色資訊。
四、場景應用
MemberShip類有多個靜態方法, 比如 ValidateUser,CreateUser 等等, Asp.Net內部呼叫相關方法實現使用者管理。
Roles類有多個靜態方法, 比如 IsUserInRole,AddUsersToRole 等等,Asp.Net內部呼叫相關方法實現角色管理。
五、VS工程配置
1. 新增User和Role的配置
web.config裡新增使用Provider的節點。其中CustomMembershipProvider和CustomRoleProvider是我們實現上面介面的類。
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
<providers>
<clear />
<add name="CustomRoleProvider" type="UIH.PACS.AuthorizationUtility.CustomRoleProvider" applicationName="/" />
</providers>
</roleManager>
2.新增Form驗證
<authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" defaultUrl="~/PatientAdmin/Index" timeout="2880" /> </authentication>
3.LogOn方法中的使用
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Redirect(returnUrl); } else { FormsAuthentication.RedirectFromLoginPage(model.UserName, false); //return RedirectToAction("Index", "PatientAdmin"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return View(model); }
4.繼承AuthorizeAttribute屬性, 過載bool AuthorizeCore(HttpContextBase httpContext)方法,在方法中呼叫許可權管理的介面。
相關文章
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- Pb中多使用者許可權管理實現方案 (轉)
- 基於RBAC實現許可權管理
- spring aop實現許可權管理Spring
- mysql使用者許可權管理MySql
- 使用者物件許可權管理物件
- Oracle使用者許可權管理Oracle
- MySQL 使用者管理與許可權管理MySql
- 使用動態路由實現許可權管理路由
- MySQL 使用者及許可權管理?MySql
- MySQL使用者及許可權管理MySql
- MongoDB 使用者與許可權管理MongoDB
- 使用者許可權系統管理
- Oracle使用者角色許可權管理Oracle
- MySQL使用者與許可權管理MySql
- Oracle使用者、許可權、角色管理Oracle
- 設計實現業務系統中的使用者許可權管理
- MySQL許可權管理實戰MySql
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- ASP.NET MVC+EF框架+EasyUI實現許可權管理系列之開篇ASP.NETMVC框架UI
- NODE + JWT + Mongo(簡單實現許可權管理)JWTGo
- Java實現許可權管理-專案設計Java
- Django實戰1-許可權管理功能實現-03:使用者認證Django
- Linux使用者、組、許可權管理Linux
- 使用者角色許可權管理架構架構
- 使用者及檔案許可權管理
- Oracle使用者、許可權、角色管理【轉】Oracle
- ASP.NET MVC+EF框架+EasyUI實現許可權管理系列(10)- VSS原始碼管理ASP.NETMVC框架UI原始碼
- Linux-許可權管理(ACL許可權)Linux
- Laravel實現許可權控制Laravel
- MySQL-03.使用者管理和許可權管理MySql
- Hyperf 使用 hyperf-permission 元件實現許可權管理元件
- 淺談許可權管理的設計與實現
- vue+elementUI實現許可權的部門管理VueUI
- 提問:使用spring aop實現許可權管理Spring
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫