最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# .NET創(chuàng)建虛擬目錄的方法詳解

 更新時間:2022年01月05日 14:25:38   作者:CoolDog;  
虛擬目錄(virtual directory),計算機(jī)術(shù)語,每個 Internet服務(wù)可以從多個目錄中發(fā)布。本文將為大家介紹如何通過C# asp.net mvc 創(chuàng)建虛擬目錄,感興趣的可以了解一下

使用背景

虛擬目錄(virtual directory),計算機(jī)術(shù)語,每個 Internet服務(wù)可以從多個目錄中發(fā)布。通過以通用命名約定 (UNC) 名、用戶名及用于訪問權(quán)限的密碼指定目錄,可將每個目錄定位在本地驅(qū)動器或網(wǎng)絡(luò)上。指定客戶 URL地址,

服務(wù)將整個發(fā)布目錄集提交給客戶作為一個目錄樹。宿主目錄是“虛擬”目錄樹的根。虛擬目錄的實際子目錄對于客戶也是可用的。只有http://www.服務(wù)支持虛擬服務(wù)器;而 FTP和 gopher服務(wù)則只能有一個宿主目錄。

虛擬目錄不出現(xiàn)于目錄列表中(也稱為http://www.服務(wù)的“目錄瀏覽”)。要訪問虛擬目錄,用戶必須知道虛擬目錄的別名,并在瀏覽器中鍵入 URL即可訪問。

簡單來說:一般的情況下,我們的文件保存路徑為默認(rèn)根目錄。但是,需要進(jìn)行訪問其他磁盤中的數(shù)據(jù)時就需要進(jìn)行創(chuàng)建虛擬目錄來進(jìn)行訪問了。

那么具體怎么創(chuàng)建并且使用呢?話不多說,開擼!

配置

1,引用using System.DirectoryServices;

2,在web.config文件的  <system.web>下增加節(jié)點(diǎn):

<identity impersonate="true" userName="Administrator" password="" />

其中userName為計算機(jī)用戶名稱,password為計算機(jī)登錄密碼沒有則填寫空。需要有這個標(biāo)識用來操作iis的虛擬目錄。

創(chuàng)建

新增一個幫助類,然后寫入以下代碼(備注寫的都很清楚):   

/// <summary>
        /// 刪除虛擬路徑
        /// </summary>
        /// <param name="virtualdirname"></param>
        public static void DeleteVirtualDir(string virtualdirname)
        {
            DirectoryEntry _rootEntry;
            _rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/" + SiteId + "/root");
            object[] paras = new object[2];
            paras[0] = "IIsVirtualDir";
            paras[1] = virtualdirname;
            _rootEntry.Invoke("Delete", paras);
            _rootEntry.CommitChanges();
        }

        /// <summary>
        /// 創(chuàng)建虛擬目錄
        /// </summary>
        /// <param name="siteId">iis站點(diǎn)ID</param>
        /// <param name="dirName">虛擬文件夾名稱</param>
        /// <param name="path">物理路徑</param>
        /// <param name="userName">用戶名稱</param>
        /// <param name="userPass">用戶密碼</param>
        /// <param name="appPoolId">應(yīng)用池Id</param>
        /// <returns></returns>
        public static string CreateVirtualDir(string siteId, string dirName, string path, string userName, string userPass, string appPoolId)
        {
            string constIISWebSiteRoot = "IIS://localhost/W3SVC/" + siteId + "/ROOT";
            string virtualDirName = dirName;//虛擬目錄名稱
            string physicalPath = path;
            try
            {
                DirectoryEntry root = new DirectoryEntry(constIISWebSiteRoot);
                foreach (System.DirectoryServices.DirectoryEntry v in root.Children)
                {
                    if (v.Name == dirName)
                    {

                        DeleteVirtualDir(dirName);
                    }
                }
                DirectoryEntry tbEntry = root.Children.Add(virtualDirName, "IIsWebVirtualDir");
                tbEntry.Invoke("AppCreate", true);
                //設(shè)置虛擬目錄指向的物理路徑
                tbEntry.Properties["Path"][0] = physicalPath;
                //設(shè)置讀取權(quán)限
                tbEntry.Properties["AccessRead"][0] = true;
                //允許寫入  
                tbEntry.Properties["AccessWrite"][0] = false;
                //腳本資源訪問
                tbEntry.Properties["AccessExecute"][0] = false;
                //允許匿名訪問   
                tbEntry.Properties["AuthAnonymous"][0] = true;
                // 設(shè)置目錄的安全性,0表示不允許匿名訪問,1為允許,3為基本身份驗證,7為windows繼承身份驗證
                tbEntry.Properties["AuthFlags"][0] = 1;
                //允許基本驗證 
                tbEntry.Properties["AuthBasic"][0] = false;
                //允許WIndows集成驗證   
                tbEntry.Properties["AuthNTLM"][0] = false;
                //索引此資源   
                tbEntry.Properties["ContentIndexed"][0] = false;
                //目錄瀏覽   
                tbEntry.Properties["EnableDirBrowsing"][0] = false;
                //腳本可執(zhí)行   
                tbEntry.Properties["AccessScript"][0] = true;
                //允許父路徑   
                tbEntry.Properties["AspEnableParentPaths"][0] = true;
                //應(yīng)用程序名稱
                tbEntry.Properties["AppFriendlyName"][0] = virtualDirName;
                //應(yīng)用程序保護(hù)   
                tbEntry.Properties["AppIsolated"][0] = 2;
                //設(shè)置默認(rèn)文檔 
                //tbEntry.Properties["DefaultDoc"][0] = "index.asp,index.html,index.htm";
                tbEntry.Properties["EnableDefaultDoc"][0] = true;
                //日志訪問   
                tbEntry.Properties["DontLog"][0] = true;
                ////用戶名
                //tbEntry.Properties["AnonymousUserName"][0] = "Administrator";
                ////用戶密碼
                //tbEntry.Properties["AnonymousUserPass"][0] = "";
                ////程序池
                //tbEntry.Properties["AppPoolId"][0] = appPoolId;
                tbEntry.CommitChanges();
                root.CommitChanges();
                return "1";
            }
            catch (Exception ex)
            {
                //return "0";
                return ex.Message + "<br>" + ex.Source;
            }
        }

使用

我們在項目運(yùn)行的時候進(jìn)行調(diào)用CreateVirtualDir函數(shù),不過并不是所有的都需要進(jìn)行創(chuàng)建虛擬目錄。這里我在配置文件中設(shè)置了一個參數(shù)。用來判斷是否開啟虛擬目錄。然后配置文件中也有設(shè)定的物理路徑。僅供參考這種方式。

iis發(fā)布運(yùn)行后,則可以通過自己創(chuàng)建的虛擬路徑進(jìn)行訪問!如圖:

結(jié)語

到這里就基本結(jié)束了。沒有特別難的操作,但如果能和配置文件相結(jié)合設(shè)置的靈活 會非常的方便。減少了發(fā)布后繁瑣的操作(不需要人手動去創(chuàng)建虛擬目錄)。

以上代碼有獲取名字或者路徑的方法更改為自己想要的名稱就可以使用了。

到此這篇關(guān)于C# .NET創(chuàng)建虛擬目錄的方法詳解的文章就介紹到這了,更多相關(guān)C# .NET創(chuàng)建虛擬目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 制作PictureBox圓形頭像框并從數(shù)據(jù)庫中讀取頭像

    C# 制作PictureBox圓形頭像框并從數(shù)據(jù)庫中讀取頭像

    C#提供的PictureBox控鍵默認(rèn)情況下是方形的非常大的影響美觀,怎么解決這一問題呢?下面小編給大家?guī)砹薈# 制作PictureBox圓形頭像框并從數(shù)據(jù)庫中讀取頭像的操作代碼,感興趣的朋友一起學(xué)習(xí)下吧
    2021-08-08
  • C#實現(xiàn)簡單屏幕監(jiān)控的方法

    C#實現(xiàn)簡單屏幕監(jiān)控的方法

    這篇文章主要介紹了C#實現(xiàn)簡單屏幕監(jiān)控的方法,涉及C#的圖標(biāo)隱藏及屏幕截圖等技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C# 禁用鼠標(biāo)中間鍵的方法

    C# 禁用鼠標(biāo)中間鍵的方法

    關(guān)于?。? System.Windows.Forms.NumericUpDown 控件,如何禁用鼠標(biāo)中間鍵?
    2013-03-03
  • C#使用反射機(jī)制實現(xiàn)延遲綁定

    C#使用反射機(jī)制實現(xiàn)延遲綁定

    這篇文章介紹了C#使用反射實現(xiàn)延遲綁定的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C#中實現(xiàn)契約測試的方法

    C#中實現(xiàn)契約測試的方法

    這篇文章主要介紹了C#中實現(xiàn)契約測試,在本文中,我將揭開契約測試的神秘面紗,并向您展示如何在 C# 項目中實現(xiàn)它,需要的朋友可以參考下
    2023-09-09
  • C#把整個文件內(nèi)容讀入字符串變量的方法

    C#把整個文件內(nèi)容讀入字符串變量的方法

    這篇文章主要介紹了C#把整個文件內(nèi)容讀入字符串變量的方法,實例分析了C#操作文件與字符串的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • c# Rank屬性與GetUpperBound方法的深入分析

    c# Rank屬性與GetUpperBound方法的深入分析

    本篇文章是對c#中的Rank屬性與GetUpperBound方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 基于C#實現(xiàn)屏幕取色器的示例詳解

    基于C#實現(xiàn)屏幕取色器的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)屏幕取色器,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • unity實現(xiàn)弧形移動 可角度自定

    unity實現(xiàn)弧形移動 可角度自定

    這篇文章主要為大家詳細(xì)介紹了unity實現(xiàn)弧形移動,可角度自定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#實現(xiàn)Quartz任務(wù)調(diào)度的示例代碼

    C#實現(xiàn)Quartz任務(wù)調(diào)度的示例代碼

    使用 Quartz.NET,你可以很容易地安排任務(wù)在應(yīng)用程序啟動時運(yùn)行,或者每天、每周、每月的特定時間運(yùn)行,甚至可以基于更復(fù)雜的調(diào)度規(guī)則,本文給大家介紹了C#實現(xiàn)Quartz任務(wù)調(diào)度,需要的朋友可以參考下
    2024-04-04

最新評論

黄浦区| 台南市| 封丘县| 吴桥县| 迁西县| 米泉市| 石林| 富阳市| 蒲江县| 寿光市| 乌拉特中旗| 赤峰市| 宝鸡市| 祁东县| 安阳市| 南皮县| 珠海市| 平顶山市| 墨脱县| 瑞昌市| 琼海市| 湖口县| 拜城县| 永兴县| 界首市| 怀来县| 清流县| 图片| 靖西县| 青田县| 井研县| 云林县| 宜城市| 南澳县| 甘孜县| 白银市| 乡城县| 囊谦县| 湟源县| 绍兴市| 苏尼特右旗|