zoukankan      html  css  js  c++  java
  • 对虚拟目录的操作

    之前做站点发布的时候,有用到对虚拟目录的操作,今天抽时间整理了一下,大概如下:
    一、查看虚拟目录是否存在
    private bool IsExitesVirtualDir(string virtualdirname)
    {
       bool exited =false;
       DirectoryEntry _entry = new DirectoryEntry("IIS://localhost/W3SVC/1/Root");
       DirectoryEntries _entries = _entry.Children;
       foreach(DirectoryEntry _cen in _entries)
       {
        if(_cen.Name == virtualdirname)
         exited = true;
       }
       return exited;
    }
    其中virtualdirpath指要建立的虚拟目录名称;

    二、新增虚拟目录
    private void CreateVirtualDir(string virtualdirname,string logicDir)
    {
       if(IsExitesVirtualDir(virtualdirname))
            DeleteVirtualDir(virtualdirname);

       DirectoryEntry _rootEntry ;
       _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
       DirectoryEntry _newVirDir;
       _newVirDir = _rootEntry .Children.Add(virtualdirpath,"IIsWebVirtualDir");
       _newVirDir.Invoke("AppCreate",true);
       _newVirDir.CommitChanges();
       _rootEntry .CommitChanges();

       _newVirDir.Properties["AnonymousPasswordSync"][0] = true;
       _newVirDir.Properties["Path"][0] = logicDir + @"virtualdirentry\virtualname\";
       _newVirDir.CommitChanges();
    }
    _newVirDir.Properties["Path"][0] 的值为虚拟目录对应的物理地址;

    三、更新虚拟目录
    public void Update(string virtualdirname)
    {
       //判断需要更改的虚拟目录是否存在
       if(_IsExitesVirtualDir(virtualdirname))
       {
        DirectoryEntry _rootEntry ;
        _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
        DirectoryEntry ode = _rootEntry.Children.Find(virtualdirname,"IIsWebVirtualDir");
        UpdateDirInfo(ode);
       }
    }
    private void UpdateDirInfo(DirectoryEntry de)
    {
       de.Properties["AnonymousUserName"][0] = AnonymousUserName;
       de.Properties["AnonymousUserPass"][0] = AnonymousUserPass;
       de.Properties["AccessRead"][0] = boolen;
       de.Properties["AccessExecute"][0] = boolen;
       de.Properties["AccessWrite"][0] = boolen;
       de.Properties["AuthBasic"][0] = boolen;
       de.Properties["AuthNTLM"][0] = boolen;
       de.Properties["ContentIndexed"][0] = boolen;
       de.Properties["EnableDefaultDoc"][0] = boolen;
       de.Properties["EnableDirBrowsing"][0] = boolen;
       de.Properties["AccessSSL"][0] = boolen;
       de.Properties["AccessScript"][0] = boolen;
       de.Properties["DefaultDoc"][0] = DefaultDoc;
       de.Properties["Path"][0] = Path;
       de.CommitChanges();
    }

    四、删除虚拟目录
    private void DeleteVirtualDir(string virtualdirname)
    {
       DirectoryEntry _rootEntry ;
       _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
       object[] paras = new object[2];
       paras[0] = "IIsVirtualDir";
       paras[1] = virtualdirname;
       _rootEntry .Invoke("Delete",paras);
       _rootEntry .CommitChanges();
    }

  • 相关阅读:
    权限管理系统(五):RBAC新解,基于资源的权限管理
    HTTP报文头Accept和Content-Type总结
    Spring Security教程(七):RememberMe功能
    Spring Security教程(六):自定义过滤器进行认证处理
    权限管理系统(三):自定义开发一套权限管理系统
    Spring Security教程(五):自定义过滤器从数据库从获取资源信息
    Spring Security教程(八):用户认证流程源码详解
    Spring Security教程(四):自定义登录页
    Spring Security教程(三):自定义表结构
    golang 做了个mutex与atomic性能测试
  • 原文地址:https://www.cnblogs.com/zhuor/p/316697.html
Copyright © 2011-2022 走看看