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

王朝学院·作者佚名  2011-12-09
窄屏简体版  字體:   |    |    |  超大  

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通过检查传入的登录名参数是否存在于流程角色列表的某个角色中来实现流程权限控制。

更多内容请看Windows权限设置专题,或

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航