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

文章作者 100test 发表时间 2007:10:10 13:03:59
来源 100Test.Com百考试题网


  WF提供权限控制的功能,其中包括两种方式:ActiveDirectoryRole(通过活动目录用户)和WebWorkflowRole(ASP.NET Role)。下面我以WebWorkflowRole的方式作为权限控制例子做介绍,首先需要安装aspnetdb数据库(通过运行微软提供的aspnet_regsql.exe文件).App.config文件配置如下:
以下是引用片段:
connectionString="Integrated Security = SSPI.server=localhost\SQLExpress.database=aspnetdb" />
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

  通过下面的代码产生角色:

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


相关文章


用托管C 监视Windows事件日志
C语言已经死了,5个需要忘却它的理由
VC 开发的应用技巧三则放送
用VisualC 干干净净地清除进程
教你轻松给流程增加权限控制程序
网络管理:小型局域网的组建
通过修改注册表来增强系统抵抗DDOS攻击
引起网络广播风暴的原因
聚生网管(Netse e)使用说明-配置篇
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛