溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))

發(fā)布時間:2020-06-14 15:22:50 來源:網(wǎng)絡(luò) 閱讀:397 作者:jirigala_bao 欄目:編程語言
C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示。
在 UserPermission.aspx 的例子如下,原文件的位置如下圖:
 
C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))
 
參考代碼如下:
C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))代碼
//------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
//------------------------------------------------------------

using System;
using System.IO;
using System.Data;

namespace DotNet.Web.Permission
{
    
using DotNet.Service;
    
using DotNet.Utilities;
    
using Jirisoft.Permission.Model;
    
using Jirisoft.Permission.Business;

    
/// <remarks>
    
/// UserPermission
    
/// 用戶當前權(quán)限的獲取例子
    
/// 
    
/// 修改紀錄
    
/// 
    
///    版本:1.0 2010.07.08    JiRiGaLa    寫好例子程序方便別人學(xué)習(xí)。
    
///    
    
/// 版本:1.0
    
/// <author>
    
///        <name>JiRiGaLa</name>
    
///        <date>2010.07.08</date>
    
/// </author> 
    
/// </remarks>
    public partial class UserPermission : BasePage
    {
        
protected void Page_Load(object sender, EventArgs e)
        {
            
// 當然是用戶需要登錄,否則哪里能知道,現(xiàn)在是判斷誰的權(quán)限啊?
            this.UserInfo = Utilities.Login("Jirigala_Bao@Hotmail.com", String.Empty);
            
            
// 1 判斷用戶是否有某個操作權(quán)限(在服務(wù)器上判斷)
            
// 訪問職員的×××列字段的操作權(quán)限
            string permissionItemCode = "Staff.Column.IDCard.Access";
            ServiceManager.Instance.PermissionService.IsAuthorizedByUser(
this.UserInfo, this.UserInfo.Id, permissionItemCode);

            
// 2 獲取用戶模塊菜單列表
            this.GetUserModules();

            
// 3 獲取用戶權(quán)限列表
            this.GetUserPermission();
        }

        
/// <summary>
        
/// 2 獲取用戶模塊菜單列表
        
/// </summary>
        private void GetUserModules()
        {
            
// 就一行代碼,就可以獲取當前用戶的所有可以訪問的模塊,然后自己想怎么處理就處理,例如變成樹形菜單等等
            DataTable dtUserModule = ServiceManager.Instance.PermissionService.GetModuleDTByUser(this.UserInfo, this.UserInfo.Id);
            
this.grvUserModules.DataSource = dtUserModule;
            
this.grvUserModules.DataBind();
        }

        
/// <summary>
        
/// 3 獲取用戶權(quán)限列表
        
/// </summary>
        private void GetUserPermission()
        {
            
// 就一行代碼,就可以獲取當前用戶的所擁有的權(quán)限列表
            DataTable dtUserPermission = ServiceManager.Instance.PermissionService.GetPermissionDTByUser(this.UserInfo, this.UserInfo.Id);
            
this.grvUserPermission.DataSource = dtUserPermission;
            
this.grvUserPermission.DataBind();
        }
    }
}


一:用戶可以訪問的模塊菜單(用戶-菜單,角色-菜單,用戶-角色,權(quán)限-菜單,菜單本身是否公開屬性,菜單的父子歸屬關(guān)系,菜單是否有效)按以上結(jié)合最終計算出所能訪問的菜單集合,當然對超級管理員進行優(yōu)化處理,簡化權(quán)限判斷過程,提高程序運行效率
有一種方法是,一次性把用戶的所有權(quán)限都獲得,放在客戶端或者Seesion里。
另一種方法時,在服務(wù)器上判斷,當前用戶是否有某個權(quán)限。

 
Id ParentId Code FullName NavigateUrl
10000003   整體信息化系統(tǒng) 整體信息化系統(tǒng)  
10000005 10000004 FrmRequestAnAccount 申請用戶賬戶  
10000007 10000004 FrmStaffAddressEdit 我的聯(lián)系方式  
10000008 10000004 FrmStaffAddressAdmin 內(nèi)部通訊錄  
10000015 10000004 Appliction 業(yè)務(wù)應(yīng)用  
10000016 10000004 FrmMessageSend 發(fā)送消息  
10000017 10000004 FrmMessage 即時通訊  
10000022 10000004 FrmAboutThis 關(guān)于本軟件  
10000024 10000004 FrmUserChangePassword 修改密碼  
10004099 10004141 用戶下訂單 用戶下訂單 Modules/Convenience/YongHuDingDan/YongHuDingDanTianJia.aspx
10004100 10004141 用戶訂單確認 用戶訂單確認 Modules/Convenience/YongHuDingDan/YongHuDingDanDaiQueRen.aspx
10004101 10004142 訂單狀態(tài)查詢 訂單配額審核查詢 Modules/Convenience/YongHuDingDan/YongHuDingDanPeiEYiQueRen.aspx
10004102 10004140 歷史訂單 歷史訂單 Modules/Convenience/YongHuDingDan/YongHuDingDanChaXun.aspx
10004103 10004183 訂單到貨確認 訂單到貨確認 Modules/Convenience/YongHuDingDan/YongHuDingDanDaoHuoQueRen.aspx
10004140 10004150 CSa01 訂單管理 Modules/Convenience/YongHuDingDan/YongHuDingDanYiQueRen.aspx
10004141 10004140 用戶訂單 用戶訂單 Modules/Convenience/YongHuDingDan/YongHuDingDanYiQueRen.aspx
10004142 10004140 訂單狀態(tài) 訂單狀態(tài) Modules/Convenience/YongHuDingDan/YongHuDingDanPeiHuoYiQueRen.aspx
10004144 10004142 訂單結(jié)算狀態(tài)查詢 訂單結(jié)算狀態(tài)查詢 Modules/Convenience/YongHuDingDan/YongHuDingDanJieSuanYiQueRen.aspx
10004145 10004142 訂單配貨狀態(tài)查詢 訂單配貨狀態(tài)查詢 Modules/Convenience/YongHuDingDan/YongHuDingDanPeiHuoYiQueRen.aspx
10004148 10004102 訂單統(tǒng)計匯總 歷史訂單查詢 Modules/Convenience/YongHuDingDan/YongHuDingDanChaXun.aspx
10004150 10000003 終端功能 終端功能  
10004176 10004141 用戶已確認訂單 用戶已確認訂單 Modules/Convenience/YongHuDingDan/YongHuDingDanYiQueRen.aspx
10004183 10004140 訂單到貨 訂單到貨 Modules/Convenience/YongHuDingDan/YongHuDingDanDaoHuoQueRen.aspx
10004410 10004141 用戶已取消訂單 用戶已取消訂單  
10004429 10000004 FrmCodeBuilder 代碼生成器  

 

 


二:用戶所擁有的權(quán)限列表(用戶-權(quán)限,角色-權(quán)限,權(quán)限本身是否公開屬性,權(quán)限的父子歸屬關(guān)系,權(quán)限是否有效)按以上結(jié)合最終計算出所擁有的權(quán)限集合
Id ParentId Code FullName
10000259 0 PermissionAdmin 通用權(quán)限解決方案
10000560 10000259 A系統(tǒng)權(quán)限配置 A系統(tǒng)權(quán)限配置
10000564 10000560 ASystem.Admin.Access A系統(tǒng)訪問權(quán)限
 

三:當前用戶是否有某個權(quán)限的判斷(用戶本身是否超級管理員?)。

            // 1 判斷用戶是否有某個操作權(quán)限(在服務(wù)器上判斷)
            // 訪問職員的×××列字段的操作權(quán)限
            string permissionItemCode = "Staff.Column.IDCard.Access";
            ServiceManager.Instance.PermissionService.IsAuthorizedByUser(this.UserInfo, this.UserInfo.Id, permissionItemCode);
 

設(shè)置asp.net通用權(quán)限的界面參考如下:

C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))

C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))

C# ASP.NET 最常用的通用權(quán)限的3個方法例子展示(每個功能一行代碼實現(xiàn))

 

C/S的權(quán)限配置管理工具 是提供給項目實施人員使用的,在項目開發(fā)的前期是給系統(tǒng)架構(gòu)師用的。

在數(shù)據(jù)庫管理維護過程中,C/S的配置管理工具是給數(shù)據(jù)庫管理員用的。

用戶在管理使用過程中,C/S的配置管理工具是給信息管理員用的。

在軟件開發(fā)階段,C/S的管理配置工具是給開發(fā)人員、項目經(jīng)理、測試人員用的。

在開發(fā)階段,底層的API,接口函數(shù)是給開發(fā)人員調(diào)用的。

在售前,給客戶演示時,C/S的管理配置工具是給客戶展示實力用的。

在售前,通用權(quán)限管理說明文檔是市場銷售人員給客戶寫方案用的。

 

ASP.NET C#通用權(quán)限管理系統(tǒng),是軟件公司老板防止開發(fā)人員每個人搞一套,是為了提高公司的軟件開發(fā)類項目互相兼容性差,互相集成性。同時是可以達到快速見效,有個牢靠的底層,防止開發(fā)人員流動、走失后導(dǎo)致整個項目亂套用的。使用成熟的組件,可以提高工作效率,可以有效積累勞動成果,防止在沒必要的事情上瞎折騰,浪費時間,浪費生命。

 

只有執(zhí)著追求,把一個方向做深做精,做個徹底,才會有希望才能更上一層樓。通用權(quán)限管理組件使用說明書V3.0.doc

有1000000人會開發(fā)管理軟件,但是可能只有100000人會開發(fā)成熟的權(quán)限系統(tǒng),只有10000個人能開發(fā)出完善的工作流。

 

 

 

將權(quán)限管理、工作流管理做到我能力的極致,一個人只能做好那么很少的幾件事情。
 
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI