基於.netstandard的許可權控制組件

來源:互聯網
上載者:User

標籤: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
  1. 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
  2. 實現自己的許可權控制顯示策略類

    • 實現頁面元素顯示策略介面 IControlAccessStrategy
    • 實現 Action 訪問顯示策略介面 IActionAccessStrategy

    範例程式碼:

    • ASP.NET Mvc

    https://github.com/WeihanLi/AccessControlHelper/blob/master/PowerControlDemo/Helper/AccessStrategy.cs

    • ASP.NET Core

    https://github.com/WeihanLi/AccessControlHelper/blob/master/AccessControlDemo/Startup.cs#L60

  3. 程式啟動時註冊自己的顯示策略

    • asp.net mvc

    Global 檔案中註冊顯示策略

    AccessControlHelperExtensions.RegisterAccessStragety(new AccessControlHelperOptions    {        ActionAccessStrategy = new ActionAccessStrategy(),        ControlAccessStrategy = new ControlAccessStrategy()    });

     

    • asp.net core

    Startup 檔案中註冊顯示策略

    // Method1
    app.UseAccessControlHelper(options => { options.ActionAccessStrategy = new ActionAccessStrategy(), options.ControlAccessStrategy = new ControlAccessStrategy() });

    // Method2 
    app.UseAccessControlHelper(new AccessControlHelperOptions    {        ActionAccessStrategy = new ActionAccessStrategy(),        ControlAccessStrategy = new ControlAccessStrategy()    });

     

  4. 控制 Action 的方法許可權

    通過 AccessControlNoAccessControl Filter 來控制 Action 的存取權限

  5. 控制頁面元素的顯示

    通過 HtmlHelper 擴充方法來實現許可權控制

    • SparkContainer 使用
    @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的許可權控制組件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.