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

2016-02-19 20:50 4 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的教你轻松给流程增加权限控制程序懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

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=localhostSQLEXPress;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通过检查传入的登录名参数是否存在于流程角色列表的某个角色中来实现流程权限控制。 更多内容请看Windows权限设置专题,或

来源:https://www.tulaoshi.com/n/20160219/1624634.html

延伸阅读
在项目中常常要定义不同的Project级别的用户和权限,仿照windows的Role/User/Access Right的控制,我的实现如下: 1、在数据库中建立5个表:tSvRole, tSvUser, tSvObject, tSvRoleUser和tSvRoleObject,分别存储Role、User、Object、Role-User对应关系以及Role-Object对应关系。建表的tsql如下: if exists (select * from dbo.sysobjects wh...
标签: 电脑入门
Windows7操作系统一上市便受到了广大消费者的好评,这主要是由于它对硬件配置要求低,且安全性较Windows XP要高。而微软也一直在努力让科技在生活中更加平易近人的设计观念在Windows7上也得到了完美体现。今天我们就给大家解决一个生活中经常会遇到的困扰,比如一台电脑多人使用然而如何让电脑最听你的话?就很多学生朋友来说,新买的Windows7...
标签: 育儿知识
要想让宝宝爱上洗头可不是一件容易的事情,相信为了能给宝宝顺利洗头已经成了众多妈妈的心头病了,怎样才能轻松完成这项任务呢?小编今天教大家一些简单的洗头攻略。 攻略一:洗头时的交流不可少 为了防止宝宝洗头时哭闹,妈妈会用讲故事、唱儿歌、和他聊天等方式来分散他的注意力。这里妈妈特别推荐两个简便易行又相对有效的小游戏—...
标签: MySQL mysql数据库
  你可以有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。 下面的例子显示出如何使用mysql客户安装新用户。这些例子假定权限根据以前的章节描述的缺省被安装。这意味着为了改变,你必须在mysqld正在运行同一台机器上,你必须作为MySQL root用户...
iconworkshop教你轻松提取程序文件中图标   首先大家需要下载这款图标制作软件iconworkshop,这是一款功能十分强大的ico图标制作软件,在各大软件站的ico图标制作类软件下载排名第一,很多设计公司都会使用。 下载完成后打开这款ico图标制作软件,然后选择文件-打开,选择一个程序文件exe,dll等(以QQ音乐图标为例)或者通过文件...

经验教程

264

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部