教你輕鬆給流程增加許可權控製程序

來源:互聯網
上載者:User
教你輕鬆給流程增加許可權控製程序 

  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通過檢查傳入的登入名稱參數是否存在於流程角色列表的某個角色中來實現流程許可權控制。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.