教你轻松给流程增加权限控制程序

程序|控制

  WF提供权限控制的功能,其中包括两种方式:ActiveDirectoryRole(通过活动目录用户)和WebWorkflowRole(ASP.NET Role)。下面我以WebWorkflowRole的方式作为权限控制例子做介绍,首先需要安装aspnetdb数据库(通过运行微软提供的aspnet_regsql.exe文件);App.config文件配置如下:

<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
 <connectionStrings>
    <addname="SqlServerConnection"
         connectionString="Integrated Security = SSPI;server=localhost\SQLExpress;database=aspnetdb" />
 </connectionStrings>
 <system.web>
    <roleManagerenabled="true"defaultProvider="SqlProvider">
      <providers>
        <addname="SqlProvider"connectionStringName="SqlServerConnection"applicationName="ConsoleAppSample"
          type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
 </system.web>
</configuration>   通过下面的代码产生角色:        ///<summary>
        ///产生角色
        ///</summary>
        private void CreateRoles()
        {
            if (!System.Web.Security.Roles.RoleExists("Personnel"))
            {
                System.Web.Security.Roles.CreateRole("Personnel");

                string[] users = { "Amanda", "Jones", "Simpson", "Peter" };
                string[] PersonnelRole = { "Personnel" };

                System.Web.Security.Roles.AddUsersToRoles(users, PersonnelRole);
            }

            if (!System.Web.Security.Roles.RoleExists("DeptManager"))
            {
                System.Web.Security.Roles.CreateRole("DeptManager");

                string[] users1 = { "Betty", "Chris", "Anil", "Derek" };
                string[] DeptManagerRole = { "DeptManager" };

                System.Web.Security.Roles.AddUsersToRoles(users1, DeptManagerRole);
            }            
        }
  假如用登录用户"Betty"为部门经理角色,通过下面的代码可以把登录用户和权限控制相结合:GenericIdentity genIdentity = new GenericIdentity("Betty ");通过调用外部事件Activity的方法把genIdentity作为事件的参数传入流程中。

  在流程定义的文件中(Workflow1.cs)定义公共变量:

public WorkflowRoleCollection eaInitiators = new System.Workflow.Activities.WorkflowRoleCollection();

  通过下面的代码把部门经理角色增加到流程角色列表:

            //装载部门经理角色
            WebWorkflowRole eaInitiatorsRole = new WebWorkflowRole("DeptManager");
        eaInitiators.Add(eaInitiatorsRole);   WF通过检查传入的登录名参数是否存在于流程角色列表的某个角色中来实现流程权限控制。

时间: 2024-12-21 22:42:03

教你轻松给流程增加权限控制程序的相关文章

教你给流程增加权限控制程序

WF提供权限控制的功能,其中包括两种方式:ActiveDirectoryRole(通过活动目录用户)和WebWorkflowRole(ASP.NET Role).下面我以WebWorkflowRole的方式作为权限控制例子做介绍,首先需要安装aspnetdb数据库(通过运行微软提供的aspnet_regsql.exe文件);App.config文件配置如下: <?xml version="1.0" encoding="utf-8"?> <confi

jbpm5 4-JBPM5.4 每启动一个流程增加2个线程

问题描述 JBPM5.4 每启动一个流程增加2个线程 我现在在用jbpm5.4,启动新流程用如下代码: HornetQHTWorkItemHandler hornetQHTWorkItemHandler = new HornetQHTWorkItemHandler(ksession); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", hornetQHTWorkItemHandler); pi = k

Windows密码忘了咋办 小编教你轻松破解

很多人出于保护隐私的目的,都习惯为自己的电脑设置开机密码,这原本是很好的使用习惯. 但是,现代社会作为一个被各种密码包围的社会,各种账户密码极易混淆,经常造成电脑开机密码记混,从而使得电脑无法正常开机,带来一系列麻烦. Windows密码忘了咋办小编教你轻松破解 正所谓未雨绸缪,今天笔者就从电脑开机密码的角度出发,教大家如何轻松破解Windows系统的开机密码,进入系统.(PS:仅限个人使用,勿做其他用途) 相信装过系统的朋友,都用过PE系统吧. 没错,最简单的Windows开机密码破解方法便是

教你轻松拿下IT运维面试难题

每一个企业内部都使用了很多种不同的软件来运维业务.要将Web和企业的应用保持可用并且性能良好是每一个IT运维管理员的职责.通常来说,IT管理员要负责对重要的软件平台以及他们相应的硬件系统进行部署.维护.升级.迁移.备份.监控和排错等工作.拥有这么大范围的职责,要确定一个IT运维职员是很困难的.在这里,我们编辑好了一系列主题来帮助那些准备应对IT运维面试问题的人. 告诉我关于你的IT管理和运维的教育背景和证书 很多IT运维职位会专注于实战的经验或者特定领域的专业性,而不是正式的教育背景.高素质的W

金山卫士教你轻松玩转电脑

电脑使用久了,总会对系统方方面面存在或大或小的不满:我习惯使用搜狗拼音而不是QQ拼音,为何我的浏览器首页总是变来变去?我希望用QQ影音而不是暴风影音打开所有电影文件,打开网页如果不再弹出各种广告世界该多清净--如果有个工具能帮我轻松搞定这所有烦恼该多好! 这个可以有.今日小编就为大家精选了15个不得不学的小技巧,能够轻松玩转你的电脑.难得的是这15个小技巧只用一款软件就都搞定了. 金山卫士不但可以查杀目前主流的病毒和木马,修复系统漏洞,优化系统,清理系统垃圾,管理软件,重装系统,还集成了多达29

教你轻松读懂Java中的Socket编程

餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个对象进行一次或多次的读取或写入操作.Read操作用来从IO操作对象读取数据,并将数据传递给用户进程.Write操作用来将用户进程中的数据传递(写入)到IO操作对象. 当所有的Read和Write操作结束之后,用户进程需要调用Close来通知系统其完成对

Vega数据可视化工具——教你轻松玩转大数据可视化 | 附代码

更多深度文章,请关注:https://yq.aliyun.com/cloud 目前我们处于信息时代,万物联网的时代已经到来.从我们的日常生活中可以发现,小到身边的智能家居,再到平时出行的共享单车.滴滴等打车软件等,无时无刻不在产生大量的数据.这几年的时间里产生的数据量,已经远远超过了历史上其它时间的总和.那么这么多的数据汇聚成一个大数据,如何对这些数据进行有效分析与加以利用就变得十分重要了,而大数据可视化是进行大数据分析的一把利器. 什么是大数据可视化呢,参考一些资料给出的定义如下,现代的数据可

书生教你最简单的增加网站外链的方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这个方法是书生用在IT学院站上比较多的方法,很实用,很简单,和大家分享下.IT学院站成立以来,尝试过很多增加网站外链的方式,当然,书生也通过这些方式,给IT学院站增加了不少外链. 从上图可以看到,IT学院站的外链在3500+了.(外链统计以雅虎统计为准)众所周知,提升网站PR,最直接的方式就是增加网站外链.随着网站外链的不断增加,网站在搜索引

刷机精灵教你轻松对付手机中暑

炎炎夏日,手机持续发热发烫也会中暑,轻则造成手机急剧耗电卡顿死机,重则影响手机寿命甚至爆炸,相信很多手机用户都深受其扰.尽管手机制作越来越精良,但仍抑制不了运行时的热量排放.在此,刷机精灵教你几招,避免手机过热过烫引发手机中暑. 慎戴手机壳 很多手机用户都喜欢给手机戴各种壳,防尘防摔的同时也美观个性.但手机壳紧紧包裹着手机,材质厚度不同也严重影响着手机散热.建议尽量选择薄.易散热的手机壳.金属材质的手机最易散热,塑料材质其次,硅胶材质则较差.在使用手机充电.玩游戏或者看视频时,可即时取下手机壳进