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)方法,在方法中呼叫許可權管理的介面。
相關文章
- 基於RBAC實現許可權管理
- mysql使用者許可權管理MySql
- 使用動態路由實現許可權管理路由
- HplusAdmin ASP.NET基本許可權管理系統ASP.NET
- MongoDB 使用者與許可權管理MongoDB
- MySQL 使用者及許可權管理?MySql
- Linux使用者、組、許可權管理Linux
- MySQL使用者及許可權管理MySql
- Oracle使用者角色許可權管理Oracle
- SpringBoot2 整合 SpringSecurity 框架,實現使用者許可權安全管理Spring BootGse框架
- MySQL許可權管理實戰MySql
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Django實戰1-許可權管理功能實現-03:使用者認證Django
- NODE + JWT + Mongo(簡單實現許可權管理)JWTGo
- 使用者許可權管理之使用者與組管理
- OpenShift 使用者許可權管理例項
- 使用者角色許可權管理架構架構
- MySQL-03.使用者管理和許可權管理MySql
- Laravel實現許可權控制Laravel
- Hyperf 使用 hyperf-permission 元件實現許可權管理元件
- 淺談許可權管理的設計與實現
- 基於Spring Security實現許可權管理系統Spring
- vue+elementUI實現許可權的部門管理VueUI
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- 前端如何進行使用者許可權管理前端
- mysql 使用者及許可權管理 小結MySql
- 4、許可權管理
- sql許可權管理SQL
- RBAC許可權管理
- MySQL許可權管理MySql
- 許可權管理策略
- PostgreSQL:許可權管理SQL
- Odoo許可權管理Odoo
- 特殊許可權管理
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- Vue 專案實現按鈕級別許可權管理Vue
- 管理系統之許可權的設計和實現
- nodejs的使用者許可權管理——acl.mdNodeJS