• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            zhiye_wang

            向星空仰望的越深,越發(fā)現(xiàn)自己的渺小

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              31 隨筆 :: 1 文章 :: 2 評論 :: 0 Trackbacks
            調(diào)用API函數(shù)NetShareAdd()將文件夾設(shè)置為共享,調(diào)用此函數(shù)后如果不做其他設(shè)置,網(wǎng)絡(luò)用戶是無法訪問共享文件夾的,因為此文件夾在NTFS分區(qū)中,同時受到NTFS文件系統(tǒng)的訪問控制,因此還需要第2步;
            調(diào)用DOS命令cacls,賦予Guest用戶組讀寫權(quán)限;
            如果要取消文件共享,直接調(diào)用API函數(shù)NetShareDel()

            對于FAT32分區(qū)中文件夾,cacls命令是不起作用的,這個命令專用于NTFS格式下的文件和文件夾。也就是說上面這種解決方法的第步不能用了,那么現(xiàn)在只能使用NetShareAdd()函數(shù)添加文件共享。調(diào)用此函數(shù)后如果不做其他設(shè)置,網(wǎng)絡(luò)用戶可以訪問共享文件夾,但擁有完全控制權(quán)限(這是默認的共享權(quán)限設(shè)置),而在實際項目中我們希望能夠編程控制讀寫權(quán)限。在NTFS分區(qū)中,我們還有NTFS文件系統(tǒng)的訪問控制功能罩著,在FAT32分區(qū)中就只能依賴于操作系統(tǒng)文件夾共享自身的權(quán)限設(shè)置功能了。
             1NET_API_STATUS NetShareAdd(
             2_In_   LPWSTR servername,
             3_In_   DWORD level,
             4_In_   LPBYTE buf,
             5_Out_  LPDWORD parm_err
             6);
             7typedef struct _SHARE_INFO_2 {
             8LPWSTR shi2_netname;
             9DWORD  shi2_type;
            10LPWSTR shi2_remark;
            11DWORD  shi2_permissions;
            12DWORD  shi2_max_uses;
            13DWORD  shi2_current_uses;
            14LPWSTR shi2_path;
            15LPWSTR shi2_passwd;
            16}
             SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;

            addShare.cpp

             1// 說明:
             2// FAT 系統(tǒng)調(diào)用此函數(shù),shi502_permissions參數(shù)無效。有且僅有共享權(quán)限為最高權(quán)限。
             3// NTFS 系統(tǒng)調(diào)用此函數(shù),請修改shi502_permissions參數(shù),可使用如下權(quán)限:
             4// ACCESS_READ, ACCESS_WRITE, ACCESS_CREATE, ACCESS_EXEC
             5// ACCESS_DELETE, ACCESS_ATRIB, ACCESS_PERM, ACCESS_ALL
             6BOOL addShare(LPTSTR lpShareName, LPTSTR lpShareDir)
             7{
             8NET_API_STATUS res;
             9SHARE_INFO_502 p;
            10 
            11p.shi502_netname = lpShareName; //共享名
            12p.shi502_type = STYPE_DISKTREE; 
            13p.shi502_remark = NULL;
            14p.shi502_permissions = ACCESS_ALL;
            15p.shi502_max_uses = SHI_USES_UNLIMITED; //最大鏈接數(shù)
            16p.shi502_current_uses = 0;
            17p.shi502_path = lpShareDir; //需要共享的路徑
            18p.shi502_passwd = NULL;
            19p.shi502_reserved = 0;
            20p.shi502_security_descriptor = NULL;
            21 
            22res = NetShareAdd(NULL, 502, (LPBYTE)&p, NULL);
            23 
            24if (NERR_Success == res)
            25{
            26printf("Share created.\n");
            27}

            28else
            29{
            30printf("NetShareAdd error: %u\n", res);
            31}

            32return (res==NERR_Success);
            33}

            34

            delShare.cpp
             
             1BOOL delShare(LPTSTR lpShareName)
             2{
             3    NET_API_STATUS res;
             4    //TCHAR szShareName[256] = "TestShare";
             5    //TCHAR szShreDir[256] = "F:\\Media";
             6    res = NetShareDel(NULL, (LMSTR)lpShareName, 0);
             7    if (NERR_Success == res)
             8    {
             9        printf("NetShareDel ok.\n");
            10    }

            11    else
            12    {
            13        printf("NetShareDel error: %u\n", res);
            14        if (ERROR_ACCESS_DENIED == res)
            15        {
            16            printf("The user does not have access to the requested information.\n");
            17        }

            18        if (NERR_NetNameNotFound == res)
            19        {
            20            printf("The share name does not exist.\n");
            21        }

            22    }

            23    return (res==NERR_Success);
            24}

            posted on 2014-12-23 17:53 zhiye_wang 閱讀(281) 評論(0)  編輯 收藏 引用 所屬分類: windows
            一本色道久久综合亚洲精品| 女同久久| 日本久久久精品中文字幕| 久久99国产精品二区不卡| 精品国产一区二区三区久久蜜臀| 久久国产免费| 丰满少妇人妻久久久久久4| 久久久久久久综合综合狠狠| 性做久久久久久久久久久| 99久久精品国产毛片| 久久精品国产亚洲7777| 麻豆亚洲AV永久无码精品久久 | 久久91精品国产91久| 久久久久亚洲av无码专区| 人人狠狠综合久久亚洲高清| 国产亚洲精品美女久久久| 伊人久久大香线蕉成人| 久久久久久国产精品无码下载| 久久精品国产男包| 日韩AV毛片精品久久久| 国内精品久久久久| 久久精品无码一区二区无码| 亚洲精品国产自在久久| 久久久久人妻一区精品| 久久精品国产亚洲一区二区| 热re99久久精品国99热| 久久精品国产2020| 精品国产青草久久久久福利| 一级女性全黄久久生活片免费 | 亚洲精品第一综合99久久| 国产免费久久久久久无码| 99麻豆久久久国产精品免费| 亚洲AV日韩精品久久久久| 97精品国产97久久久久久免费| 青青青青久久精品国产h久久精品五福影院1421 | 99久久免费只有精品国产| 精品国产91久久久久久久| 久久精品视频免费| 精品人妻伦九区久久AAA片69 | 精品国产VA久久久久久久冰| 无码国内精品久久人妻蜜桃 |