⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 default.aspx.cs

📁 ASP.NET多线程编程(二),ASP.NET多线程编程(二) .
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Zeroone.Security.Permissions;
using Zeroone.Security;
using Zeroone.FileSystem;
using Zeroone.Data;
using Zeroone.Custom;
using System.IO;
using Zeroone.Caching;

public partial class Installer_Default : System.Web.UI.Page
{
    protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
    {
        //首先创建zeroone_cache目录和zeroone_searchIndexFile目录
        CreateCacheDirectory();
        CreateIndexFileDirectory();
        //step 1:add system paths
        AddSystemCategory();
        //step 2:add system permission name
        AddSystemPermissionNames();
        //setp 3:add system roles
        AddSystemRoles();
        //setp 4:add system default permissions
        AddDefaultPermissions();
        //setp 5:add a admistrator
        Membership.CreateUser(this.tbUserName.Text, tbPassword.Text, tbEmail.Text);
        Roles.AddUserToRole(this.tbUserName.Text, RoleController.Administrators);

        Response.Redirect("~/admin/login.aspx?ReturnUrl=default.aspx");
    }

    void CreateCacheDirectory()
    {
        if (Directory.Exists(this.Context.Request.PhysicalApplicationPath + "zeroone_cache"))
        {
            string[] files;
            files = Directory.GetFiles(DataCache.CachingDirectory);

            for (int i = 0; i < files.Length; i++)
            {
                File.Delete(files[i]);
            }
        }
        else
        {
            Directory.CreateDirectory(this.Context.Request.PhysicalApplicationPath + "zeroone_cache");
        }
    }

    void CreateIndexFileDirectory()
    {
        if (Directory.Exists(this.Context.Request.PhysicalApplicationPath + "zeroone_searchIndexFile"))
        {
            Directory.Delete(this.Context.Request.PhysicalApplicationPath + "zeroone_searchIndexFile",true);
        }

        Directory.CreateDirectory(this.Context.Request.PhysicalApplicationPath + "zeroone_searchIndexFile");
    }

    void AddSystemCategory()
    {
        if (CategoryController.Exists(CategoryController.SystemRootPath))
        {
            Response.Write("数据库中存在数据,如果你确定要重新初始化数据库,请手工清除数据库中的所有数据!");
            Response.End();
        }
        Category rootPath = new Category();
        rootPath.Name = tbSiteName.Text;
        rootPath.Path = CategoryController.SystemRootPath;
        CategoryDataProvider.Instance().CreateCategory(rootPath);

        //Category auditPath = new Category();
        //auditPath.Name = "待审核文档";
        //auditPath.Path = CategoryController.SystemAuditPath;
        //CategoryDataProvider.Instance().CreateCategory(auditPath);

        Category commentPath = new Category();
        commentPath.Name = "文档评论";
        commentPath.Path = CategoryController.SystemCommentPath;
        CategoryDataProvider.Instance().CreateCategory(commentPath);

        Category pagesPath = new Category();
        pagesPath.Name = "文档分页";
        pagesPath.Path = CategoryController.SystemPagesPath;
        CategoryDataProvider.Instance().CreateCategory(pagesPath);

        Category recyclePath = new Category();
        recyclePath.Name = "回收站";
        recyclePath.Path = CategoryController.SystemRecyclePath;
        CategoryDataProvider.Instance().CreateCategory(recyclePath);
    }

    void AddSystemPermissionNames()
    {
        PermissionCustomPermissionController controller = new PermissionCustomPermissionController();
        controller.AddPermissionName(PermissionController.CreateCategory, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.CreateDocument, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.DeleteCategory, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.DeleteDocument, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.EditCategory, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.EditDocument, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.ListDocuments, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.ReadCategory, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.ReadDocument, CategoryController.SystemRootPath);
        controller.AddPermissionName(PermissionController.ManageDocuments, CategoryController.SystemRootPath);
    }

    void AddSystemRoles()
    {
        Roles.CreateRole(RoleController.Administrators);
        //Roles.CreateRole(RoleController.CategorySetting);
        Roles.CreateRole(RoleController.CategoryDocumentManagers);
        Roles.CreateRole(RoleController.Everyone);
        Roles.CreateRole(RoleController.RegisteredUsers);
    }

    void AddDefaultPermissions()
    {
        string[] roleNames = Roles.GetAllRoles();
        #region 配置根目录的角色访问权
        for (int i = 0; i < roleNames.Length;i++ )
        {
            string roleName = roleNames[i];
            PermissionInfo permission = new PermissionInfo();
            permission.Path = CategoryController.SystemRootPath;
            permission.RoleName = roleName;
            if (roleName == RoleController.Administrators)
            {
                permission.SetPermission(PermissionController.CreateCategory, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.CreateDocument, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.DeleteCategory, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.DeleteDocument, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.EditCategory, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.EditDocument, AccessControlEntry.Allow);
                
                permission.SetPermission(PermissionController.ListDocuments, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.ReadCategory, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.ReadDocument, AccessControlEntry.Allow);
                permission.SetPermission(PermissionController.ManageDocuments, AccessControlEntry.Allow);
            }
            //else if (roleName == RoleController.CategorySetting)
            //{
            //    permission.SetPermission(PermissionController.CreateCategory, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.CreateDocument, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.DeleteCategory, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.DeleteDocument, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.EditCategory, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.EditDocument, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.ListDocuments, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.ReadCategory, AccessControlEntry.Allow);
            //    permission.SetPermission(PermissionController.ReadDocument, AccessControlEntry.Deny);
            //    permission.SetPermission(PermissionController.ManageDocuments, AccessControlEntry.Deny);
            //}
            else if (roleName == RoleController.CategoryDocumentManagers)
            {
                permission.SetPermission(PermissionController.CreateCategory, AccessControlEntry.Deny);
                permission.SetPermission(PermissionController.CreateDocument, AccessControlEntry.Deny);
                permission.SetPermission(PermissionController.DeleteCategory, AccessControlEntry.Deny);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -