C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)

   2023-02-09 学习力0
核心提示:C# ASP.NET 最常用的通用权限的3个方法例子展示。在 UserPermission.aspx 的例子如下,原文件的位置如下图:  参考代码如下:代码 //------------------------------------------------------------// All Rights Reserved , Copyright (C) 2010 ,
C# ASP.NET 最常用的通用权限的3个方法例子展示。
在 UserPermission.aspx 的例子如下,原文件的位置如下图:
 
C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)
 
参考代码如下:
代码
//------------------------------------------------------------
// 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
    
/// 用户当前权限的获取例子
    
/// 
    
/// 修改纪录
    
/// 
    
///    版本:1.0 2010.07.08    JiRiGaLa    写好例子程序方便别人学习。
    
///    
    
/// 版本: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)
        {
            
// 当然是用户需要登录,否则哪里能知道,现在是判断谁的权限啊?
            this.UserInfo = Utilities.Login("Jirigala_Bao@Hotmail.com", String.Empty);
            
            
// 1 判断用户是否有某个操作权限(在服务器上判断)
            
// 访问职员的身份证列字段的操作权限
            string permissionItemCode = "Staff.Column.IDCard.Access";
            ServiceManager.Instance.PermissionService.IsAuthorizedByUser(
this.UserInfo, this.UserInfo.Id, permissionItemCode);

            
// 2 获取用户模块菜单列表
            this.GetUserModules();

            
// 3 获取用户权限列表
            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 获取用户权限列表
        
/// </summary>
        private void GetUserPermission()
        {
            
// 就一行代码,就可以获取当前用户的所拥有的权限列表
            DataTable dtUserPermission = ServiceManager.Instance.PermissionService.GetPermissionDTByUser(this.UserInfo, this.UserInfo.Id);
            
this.grvUserPermission.DataSource = dtUserPermission;
            
this.grvUserPermission.DataBind();
        }
    }
}


一:用户可以访问的模块菜单(用户-菜单,角色-菜单,用户-角色,权限-菜单,菜单本身是否公开属性,菜单的父子归属关系,菜单是否有效)按以上结合最终计算出所能访问的菜单集合,当然对超级管理员进行优化处理,简化权限判断过程,提高程序运行效率
有一种方法是,一次性把用户的所有权限都获得,放在客户端或者Seesion里。
另一种方法时,在服务器上判断,当前用户是否有某个权限。

 
Id ParentId Code FullName NavigateUrl
10000003   整体信息化系统 整体信息化系统  
10000005 10000004 FrmRequestAnAccount 申请用户账户  
10000007 10000004 FrmStaffAddressEdit 我的联系方式  
10000008 10000004 FrmStaffAddressAdmin 内部通讯录  
10000015 10000004 Appliction 业务应用  
10000016 10000004 FrmMessageSend 发送消息  
10000017 10000004 FrmMessage 即时通讯  
10000022 10000004 FrmAboutThis 关于本软件  
10000024 10000004 FrmUserChangePassword 修改密码  
10004099 10004141 用户下订单 用户下订单 Modules/Convenience/YongHuDingDan/YongHuDingDanTianJia.aspx
10004100 10004141 用户订单确认 用户订单确认 Modules/Convenience/YongHuDingDan/YongHuDingDanDaiQueRen.aspx
10004101 10004142 订单状态查询 订单配额审核查询 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 订单状态 订单状态 Modules/Convenience/YongHuDingDan/YongHuDingDanPeiHuoYiQueRen.aspx
10004144 10004142 订单结算状态查询 订单结算状态查询 Modules/Convenience/YongHuDingDan/YongHuDingDanJieSuanYiQueRen.aspx
10004145 10004142 订单配货状态查询 订单配货状态查询 Modules/Convenience/YongHuDingDan/YongHuDingDanPeiHuoYiQueRen.aspx
10004148 10004102 订单统计汇总 历史订单查询 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 代码生成器  

 

 


二:用户所拥有的权限列表(用户-权限,角色-权限,权限本身是否公开属性,权限的父子归属关系,权限是否有效)按以上结合最终计算出所拥有的权限集合
Id ParentId Code FullName
10000259 0 PermissionAdmin 通用权限解决方案
10000560 10000259 A系统权限配置 A系统权限配置
10000564 10000560 ASystem.Admin.Access A系统访问权限
 

三:当前用户是否有某个权限的判断(用户本身是否超级管理员?)。

            // 1 判断用户是否有某个操作权限(在服务器上判断)
            // 访问职员的身份证列字段的操作权限
            string permissionItemCode = "Staff.Column.IDCard.Access";
            ServiceManager.Instance.PermissionService.IsAuthorizedByUser(this.UserInfo, this.UserInfo.Id, permissionItemCode);

设置asp.net通用权限的界面参考如下:

C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)

C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)

C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)

 

C/S的权限配置管理工具 是提供给项目实施人员使用的,在项目开发的前期是给系统架构师用的。

在数据库管理维护过程中,C/S的配置管理工具是给数据库管理员用的。

用户在管理使用过程中,C/S的配置管理工具是给信息管理员用的。

在软件开发阶段,C/S的管理配置工具是给开发人员项目经理测试人员用的。

在开发阶段,底层的API,接口函数是给开发人员调用的。

在售前,给客户演示时,C/S的管理配置工具是给客户展示实力用的。

在售前,通用权限管理说明文档是市场销售人员给客户写方案用的。

 

ASP.NET C#通用权限管理系统,是软件公司老板防止开发人员每个人搞一套,是为了提高公司的软件开发类项目互相兼容性差,互相集成性。同时是可以达到快速见效,有个牢靠的底层,防止开发人员流动、走失后导致整个项目乱套用的。使用成熟的组件,可以提高工作效率,可以有效积累劳动成果,防止在没必要的事情上瞎折腾,浪费时间,浪费生命。

 

只有执着追求,把一个方向做深做精,做个彻底,才会有希望才能更上一层楼。通用权限管理组件使用说明书V3.0.doc

有1000000人会开发管理软件,但是可能只有100000人会开发成熟的权限系统,只有10000个人能开发出完善的工作流。

 

 

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 使用WebClient自动填写并提交ASP.NET页面表单的源代码
    使用WebClient自动填写并提交ASP.NET页面表单的
    转自:http://www.cnblogs.com/anjou/archive/2007/03/07/667253.html 在.NET中通过程序填写和提交表单还是比较简单。比如,要提交一个如下图所示的登录表单:           填写和提交以上表单的代码如下:       // 要提交表单的URI字符串
    02-09
  • asp.net mvc多条件+分页查询解决方案
    


            
asp.net mvc多条件+分页查询解决方案
    asp.net mvc多条件+分页查询解决方案
    http://www.cnblogs.com/nickppa/p/3232535.html开发环境vs2010css:bootstrapjs:jquery    bootstrap paginator原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了MVC多条件+分页查询因为美工不是很好,所以用的是
    02-09
  • ASP.NET操作Cookies的问题(Bug or Not)
    以下存和取都是在不同的页面中,如果是在同一个页面也没必要用cookies了。 Test1: 给Cookies赋值: const string AAA="aaa"; Response.Cookies[AAA].Value = "111;222;333"; 取值: string value = Request.Cookies[AAA].Value; // value为111 Test2: 给Cooki
    02-09
  • Asp.Net Core 自定义验证属性
      很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性。所以这一篇我们就来介绍一下怎么自定义验证属性。  我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自ValidationAttribute的类,然后在实现其IsVal
    02-09
  • Asp.Net 之 枚举类型的下拉列表绑定
    有这样一个学科枚举类型:/// 学科 /// /summary public enum Subject {None = 0,[Description("语文")]Chinese = 1,[Description("数学")]Mathematics = 2,[Description("英语")]English = 3,[Description("政治")]Politics = 4,[Description("物理&qu
    02-09
  • [ASP.NET笔记] 1.Web基础知识
         1:http协议:     2:web服务器:     3:静态网页的概念     4:动态网页的概念       http协议:http(hypertext transfer protocol) 即超文本传输协议,这个协议是在internet上进行信息传送的协议任何网页之间要相互沟通,必须要尊循
    02-09
  • ASP.NET邮件发送 .net 发送邮件
      今天做了个ASP.NET做发送邮件功能,发现QQ邮箱好奇怪,当你用QQ邮箱做服务器的时候什么邮件都发送不出去(QQ邮箱除外)。而且爆出这样的错误:"邮箱不可用。 服务器响应为: Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.ht
    02-09
  • 由ASP.NET Core根据路径下载文件异常引发的探究
    前言    最近在开发新的项目,使用的是ASP.NET Core6.0版本的框架。由于项目中存在文件下载功能,没有使用类似MinIO或OSS之类的分布式文件系统,而是下载本地文件,也就是根据本地文件路径进行下载。这其中遇到了一个问题,是关于如何提供文件路径的,通
    02-09
  • ASP.NET的运行原理与运行机制 ASP.NET的开发模式包括
    ASP.NET的运行原理与运行机制 ASP.NET的开发模
    在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用WebForms这种模仿Windows Form编程方式有了很大不同,不再有大量控件和控件生成的大量不够灵活的代码
    02-09
  • ASP.NET 后台接收前台POST过来的json数据方法
     ASP.NET前后台交互之JSON数据 https://www.cnblogs.com/ensleep/p/3319756.html
    02-09
点击排行