WF提供权限控制的功能,其中包括两种方式:ActiveDirectoryRole(通过活动目录用户)和WebWorkflowRole(ASP.NET Role)。下面我以WebWorkflowRole的方式作为权限控制例子做介绍,首先需要安装aspnetdb数据库(通过运行微软提供的aspnet_regsql.exe文件);App.config文件配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<addname="SqlServerConnection"
connectionString="IntegratedSecurity=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通过检查传入的登录名参数是否存在于流程角色列表的某个角色中来实现流程权限控制。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索权限
, security
, 流程
, system
, 控制
角色
财务审批流程及权限、增加注册资本流程、增加经营范围流程、增加股东流程、公司增加股东流程,以便于您获取更多的相关知识。