標籤:asp 安裝 bcd control span 策略 rem ext extension
基於.netstandard的許可權控制組件 Intro
由於項目需要,需要在 基於 Asp.net mvc 的 Web 項目架構中做許可權的控制,於是才有了這個許可權控制組件。
項目基於 .NETStandard,同時支援 asp.net mvc(.NET faremwork4.5以上) 和 asp.net core 項目(asp.net 2.0以上)
GetStarted
Nuget Package https://www.nuget.org/packages/WeihanLi.AspNetMvc.AccessControlHelper/
安裝許可權控制組件 WeihanLi.AspNetMvc.AccessControlHelper
,可以直接在 VisualStudio 中 Nuget 包管理器中搜尋安裝,也可以通過下面的命令來安裝:
asp.net:
Install-Package WeihanLi.AspNetMvc.AccessControlHelper
asp.net core:
dotnet add package WeihanLi.AspNetMvc.AccessControlHelper
實現自己的許可權控制顯示策略類
- 實現頁面元素顯示策略介面
IControlAccessStrategy
- 實現
Action
訪問顯示策略介面 IActionAccessStrategy
範例程式碼:
https://github.com/WeihanLi/AccessControlHelper/blob/master/PowerControlDemo/Helper/AccessStrategy.cs
https://github.com/WeihanLi/AccessControlHelper/blob/master/AccessControlDemo/Startup.cs#L60
程式啟動時註冊自己的顯示策略
在 Global
檔案中註冊顯示策略
AccessControlHelperExtensions.RegisterAccessStragety(new AccessControlHelperOptions { ActionAccessStrategy = new ActionAccessStrategy(), ControlAccessStrategy = new ControlAccessStrategy() });
在 Startup
檔案中註冊顯示策略
// Method1
app.UseAccessControlHelper(options => { options.ActionAccessStrategy = new ActionAccessStrategy(), options.ControlAccessStrategy = new ControlAccessStrategy() });
// Method2
app.UseAccessControlHelper(new AccessControlHelperOptions { ActionAccessStrategy = new ActionAccessStrategy(), ControlAccessStrategy = new ControlAccessStrategy() });
控制 Action
的方法許可權
通過 AccessControl
和 NoAccessControl
Filter 來控制 Action
的存取權限
控制頁面元素的顯示
通過 HtmlHelper
擴充方法來實現許可權控制
@using(Html.SparkContainer("div",new { @class="container",custom-attribute = "abcd" })){ @Html.Raw("1234")}@using (Html.SparkContainer("span",new { @class = "custom_p111" }, "F7A17FF9-3371-4667-B78E-BD11691CA852")) { @:12344 }
沒有許可權訪問就不會渲染到頁面上,有許可權訪問的時候渲染得到的 Html 如下:
<div class="container" custom-attribute="abcd">1234</div><span class="custome_p111">12344</span>
Contact
如果您在使用中遇到了問題,歡迎隨時與我聯絡。
Contact me: [email protected]
基於.netstandard的許可權控制組件