日期:2014-05-18  浏览次数:20883 次

如果共享文件夹并指定用户和权限?
比如有个文件夹C:\test

如何使用C#编程实现如下内容:
1)将"C:\test"设置成共享?
2)指定用户DOMAIN1\user为C:\test的用户
3)设定DOMAIN1\user的权限

说明:
第1)个问题,我使用NetShareAdd来实现的,可以使用。但是仅仅能将某个文件夹设置成共享,不知道如何才能为它指定用户和权限。

谢谢大家,有线索就散分!

------解决方案--------------------
不知道如何才能为它指定用户和权限。
-----------
局域网内设为同一工作域
------解决方案--------------------
为它指定用户和权限,你可以从属性里设置。
------解决方案--------------------
用程序如何实现,还真不清楚,帮顶。
------解决方案--------------------
up
------解决方案--------------------
UP,我也想知道
------解决方案--------------------
http://www.codeproject.com/KB/IP/StorerActiveDirectory.aspx
------解决方案--------------------
class NetworkHelper
{
/// <summary>
/// 将局域网资源映射给应用程序
/// </summary>
/// <param name="LocalDrive">dbf文件所在的局域网路径</param>
/// <param name="NetworkFolderPath">当行情在局域网机器上使用.比如\\192.168.0.1\dbf</param>
/// <param name="User">访问局域网资源的用户名</param>
/// <param name="Password">访问局域网资源的密码</param>
/// <param name="Force">默认true</param>
/// <returns>true成功,false失败</returns>
public static bool WNetAddConnection(string LocalDrive, string NetworkFolderPath, string User, string Password, bool Force)
{
//2009.9.2 直接返回true,不需要局域网资源映射,by liwei
//return true;

try
{
NetResource netresource = new NetResource();

netresource.Scope = RESOURCE_GLOBALNET;

netresource.Type = RESOURCETYPE_DISK;

netresource.Usage = RESOURCEUSAGE_CONNECTABLE;

netresource.DisplayType = RESOURCEDISPLAYTYPE_SHARE;

netresource.LocalName = LocalDrive;

netresource.RemoteName = NetworkFolderPath;

netresource.Comment = "";

netresource.Provider = "";

int Flag = CONNECT_UPDATE_PROFILE;

if (Force)
{
try
{
WNetCancelConnection(LocalDrive, true);
}
catch (Exception ex)
{
throw ex;
}
}

int result = WNetAddConnection2A(ref netresource, Password, User, Flag);

if (result > 0)
{
throw new System.ComponentModel.Win32Exception(result);
}

return true;
}
catch (Exception ex)
{
throw ex;
}
}

/// <summary>
/// 解除相应的映射
/// </summary>
/// <param name="LocalDrive">dbf文件所在的局域网路径</param>
/// <param name="Force">默认true</param>
/// <returns>true成功,false失败</returns>
public static bool WNetCancelConnection(string LocalDrive, bool Force)
{
try
{
int result = WNetCancelConnection2(LocalDrive, CONNECT_UPDATE_PROFILE, Force);

if (result > 0)