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

2016-02-19 20:50 6 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权限设置专题,或

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

延伸阅读
问题的引出 在计算机程序中,除了常见的执行流程控制,还有逻辑流程控制;有时,执行流程即为逻辑流程,但在大多数情况下还是有所区别的,例如,假定有一个Web服务器使用同步套接字读取HTTP请求,那么会编写如下的代码: void read(HTTP_REQUEST& http_request) { read(http_request.header); read(http_req...
标签: MySQL mysql数据库
  你可以有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。 下面的例子显示出如何使用mysql客户安装新用户。这些例子假定权限根据以前的章节描述的缺省被安装。这意味着为了改变,你必须在mysqld正在运行同一台机器上,你必须作为MySQL root用户...
标签: 育儿知识
要想让宝宝爱上洗头可不是一件容易的事情,相信为了能给宝宝顺利洗头已经成了众多妈妈的心头病了,怎样才能轻松完成这项任务呢?小编今天教大家一些简单的洗头攻略。 攻略一:洗头时的交流不可少 为了防止宝宝洗头时哭闹,妈妈会用讲故事、唱儿歌、和他聊天等方式来分散他的注意力。这里妈妈特别推荐两个简便易行又相对有效的小游戏—...
这两天在学如何写个linux下的shell才明白原来dos下的command.COM也是个shell这当然要用到c的很多库函数 access(判断是否具有存取文件的权限) 相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include 定义函数 int access(const char * pathname,int mode);函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几...
标签: ASP
  在平时做主页时,为了控制某主页的浏览权限,就要设置一个密码来控制。假设密码存于服务器端的数据库中。在FrontPage 98 中可结合ASP 来一个小程序程序,完成上述功能。具体步骤如下: 在FrontPage 98中,先做如下设计: 保存为ASP 文件,取名为test.asp,在Form Properties 的 Advanced 中增加一个变量:hname,值为 “aaa”(...

经验教程

413

收藏

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