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

来源:http://www.cnblogs.com/weihanli/archive/2017/09/04/AccessControlHelper.html
-Advertisement-
Play Games

基於.netstandard的許可權控制組件 Intro 由於項目需要,需要在 基於 Asp.net mvc 的 Web 項目框架中做許可權的控制,於是才有了這個許可權控制組件。 項目基於 .NETStandard,同時支持 asp.net mvc(.NET faremwork4.5以上) 和 asp.n ...


基於.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]


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文主要介紹json最原始的解析與google提供的gson工具類解析 ①json解析 ②gson解析 1)首先在AndroidStudio中安裝一個GsonFormat插件 2)新建一個javaben類然後按下組合鍵alt+insert 把完整的json數據拷貝到編輯框中 3)添加gson的依賴包 ...
  • Android的版本有很多通常開發的時候對話框大多數使用自定義或是 Google提供的V4, V7 相容包來開發保持各個版本的對話框樣式統一,所以這裡使用的是V7 包里的AlertDialog。 ...
  • 中文翻譯文檔: http://blog.csdn.net/rickiyeat/article/details/56483577 版本說明: Jquery v2.1.1 Bootstrap V3.3.7 bootstrap-table V1.11.1 一、視圖頁 1 <!DOCTYPE html> 2 ...
  • C#中Cookies的讀取 鏈接: 一 、寫入Cookie 1. Name 和 Value 屬性由程式設定,預設值都是空引用。 2. Domain屬性的預設值為當前URL的功能變數名稱部分,不管發出這個cookie的頁面在哪個目錄下的。 例如, http://www.kent.com/application ...
  • Cookie客戶端緩存。 1、引言 隨著瀏覽器的處理能力不斷增強,越來越多的網站開始考慮將數據存儲在「客戶端」,那麼久不得不談本地存儲了。 本地存儲的好處: 一是避免取回數據前頁面一片空白,如果不需要最新數據也可以減少向伺服器的請求次數,從而減少用戶等待從服務端獲取數據的時間。 二是網路狀態不佳時仍 ...
  • 本文是要寫的下篇《C#反射及優化用法》的前奏,不能算是下一篇文章的基礎的基礎吧,有興趣的朋友可以關註一下。 隨著C#的發展,該語言內容不斷豐富,開發變得更加方便快捷,C# 的鋒利盡顯無疑。C# 語言從誕生起就是強類型語言,這一性質到今天不曾改變,我想以後也不會變。既然是強類型語言,那編寫任一程式均要 ...
  • 獲取電腦內部信息 - ComputerInfoHelper 一、代碼 ComputerInfoHelper.cs ManagementBaseObjectPropertyName.cs WmiPath.cs 二、測試 1.電腦硬碟信息 2.我的電腦中的硬碟信息 3.測試代碼 4.輸出結果: 所有硬 ...
  • 大家在開發中會經常看到也會經常使用lambda表達式。 園子里也有很多詳解lambda表達式的文章,多是從橫向來講述。 但lambda表達式到底如何變成現在這個樣子,表達式的形式到底代表什麼含義,這些可能就不太明白了。 本文將從來源開始,縱向剖析,一直演化出我們常用的lambda表達式。 引子 為方 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...