角色:WebWorkflowRole
WebWorkflowRole使用ASP.NET的用户数据库,但所有数据操作不用人为干预
使用时,要添加对ASP.NET数据库的连接配置
| App.config | 
| <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="SqlServerConnection" connectionString="Integrated Security = SSPI;server=WXWINTER\SQLEXPRESS;database=aspnetdb" /> </connectionStrings> <system.web> <roleManager enabled="true" defaultProvider="SqlProvider"> <providers> <add name="SqlProvider" connectionStringName="SqlServerConnection" applicationName="ConsoleAppSample"                             type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b </providers> </roleManager> </system.web> </configuration> 
 | 
一个例子
外部事件
| 
 [Serializable] public class 事件参数 : ExternalDataEventArgs { private string 存值; public string 自定义属性 { get { return this.存值; } set { this.存值 = value; } } 
 public 事件参数() : base(Guid.NewGuid()) { } 
 public 事件参数(Guid instanceId, string 值参数) : base(instanceId) { this.存值 = 值参数; 
 } } 
 [ExternalDataExchangeAttribute()] public interface 外部事件接口 { event EventHandler<事件参数> 一个外部事件; } 
 
 public class 实现类 : 外部事件接口 { public event EventHandler<事件参数> 一个外部事件; 
 public void 触发事件(Guid instanceId, string 值参数, IIdentity 用户参数) { 事件参数 e = new 事件参数(instanceId,值参数); 
 String 安全标置 = null; 
 WindowsIdentity 用户 = 用户参数 as WindowsIdentity; 
 if (用户 != null && 用户.User != null) { 安全标置 = 用户.User.Translate(typeof(NTAccount)).ToString(); } else if (用户参数 != null) { 安全标置 = 用户参数.Name; } 
 e.Identity = 安全标置; 
 Console.WriteLine("外部事件已执行,用户:", 用户参数.Name); 
 if (一个外部事件 != null) { 一个外部事件("sender:wxwinter", e); } } } 
 | 
工作流中为结点设定角色
|  Roles属性映射 
 | 
| WebWorkflowRole 要添加的角色 = new WebWorkflowRole("aspnetdb数据库中的角色名"); 角色.Add(要添加的角色); | 
宿主中使用aspnetdb数据库中的用户触发外部事件
| Dim 用户 As System.Security.Principal.GenericIdentity = New Security.Principal.GenericIdentity("aspnetdb数据库中的角色名") 外部对象.触发事件(当前操作的实例.InstanceId, DateTime.Now.ToString(), 用户) | 
本例中宿主是EXE程序
本例收于 WWF调试模板(3) 中
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号