请教各位大大们:假设局域网内有A01、B01、C01等用户,现在想在服务器端(wind2003serv)用vb实现如下功能---
1、创建用户,并可以设置密码
2、在某个目录下如:E:\sharefiles中建立几个与用户名同名的文件夹,并设为共享;
3、并设置权限为:A01用户通过密码只能访问并能读写A01这个文件夹中的文件;B01用户通过密码只能访问并能读写B01文件夹中的文件,……;
4、且对某个用户而言,其它用户的文件夹是隐藏的。
5、可以设置某个文件夹为全部用户都共享,可见的,但只能读取。
想用vb编程实现以上功能,其中第1、2个功能已经实现,但其它功能不知如何才能做到?

解决方案 »

  1.   

    用shell" net user"实现创建用户、设置密码,net share设置共享,权限要如何设置呢?高手们出手呀!!
      

  2.   

    以前用VC写过一段代码,你自己参考一下吧:
    BOOL SetNetSharePermission(char *pszSharedName, char *pszUserName, DWORD dwAccessPermissions)
    {
    PACL pNewAcl = NULL;
    PSECURITY_DESCRIPTOR psd = NULL;
    DWORD dwError;
    PACL ExistingDacl;
    BOOL bReturnValue = FALSE; try
    {
    dwError = GetNamedSecurityInfo(pszSharedName, SE_LMSHARE, DACL_SECURITY_INFORMATION, NULL, NULL, &ExistingDacl, NULL, &psd);
    if(dwError != ERROR_SUCCESS)return FALSE;
    EXPLICIT_ACCESS explicitaccess;
    BuildExplicitAccessWithName(&explicitaccess, pszUserName, dwAccessPermissions, SET_ACCESS, NO_INHERITANCE);
    if(ERROR_SUCCESS == SetEntriesInAcl(1, &explicitaccess, ExistingDacl, &pNewAcl))
    bReturnValue = (ERROR_SUCCESS == SetNamedSecurityInfo(pszSharedName, SE_LMSHARE, DACL_SECURITY_INFORMATION, NULL, NULL, pNewAcl, NULL)); if(pNewAcl != NULL)AccFree(pNewAcl);
    if(psd != NULL)AccFree(psd);
    }
    catch(...)
    {
    }
    return bReturnValue;
    };
      

  3.   

    用Shell调用cacls命令
    c:\>cacls /?
    显示或者修改文件的访问控制表(ACL)CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]
                   [/P user:perm [...]] [/D user [...]]
       filename      显示 ACL。
       /T            更改当前目录及其所有子目录中
                     指定文件的 ACL。
       /E            编辑 ACL 而不替换。
       /C            在出现拒绝访问错误时继续。
       /G user:perm  赋予指定用户访问权限。
                     Perm 可以是: R  读取
                                  W  写入
                                  C  更改(写入)
                                  F  完全控制
       /R user       撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
       /P user:perm  替换指定用户的访问权限。
                     Perm 可以是: N  无
                                 R  读取
                                 W  写入
                                 C  更改(写入)
                                 F  完全控制
       /D user       拒绝指定用户的访问。
    在命令中可以使用通配符指定多个文件。
    也可以在命令中指定多个用户。
      

  4.   

    权限分配的相关函数都在advapi32里面,msdn有介绍。
      

  5.   

    这一段较忙,到现在才汇报。有两种方法。一种可利用net share /grant的方法(win2003),另一种即zhao4zhong1 所说的。谢谢zhao4zhong1。山野哥所说的advapi32,由于本人太菜了,对API不熟悉,没有深究,也谢谢了。结贴散分。