NTFS文件夹权限(用户组) [英] NTFS Folder Permission (UserGroup)
问题描述
大家好,
我需要提供给定文件夹的用户组(完全控制访问权限).我可以为使用ADSI的用户提供完全控制权限,但不能为用户组提供完全控制权限.
在下面检查我的代码,
public static bool GrantPermission(String vPath,String UserName)
{
尝试
{
SecurityDescriptor objSecDes;
AccessControlList objDAcl;
AccessControlEntry objAce1;
AccessControlEntry objAce2;
对象objSIdHex;
ADsSID objSId;
objADsSec = new ADsSecurityClass();
objSecDes =(SecurityDescriptor)(objADsSec.GetSecurityDescriptor("FILE://" + vPath));
objDAcl =(AccessControlList) objSecDes.DiscretionaryAcl;
objSId = new ADsSIDClass();
///ADS_SID_SAM(VT_BSTR),例如vdsi \ v860786
objSId.SetAs((int)ADSSECUSIDSDS_FORMS_FORM_ADS_ADS_ADS_ADS_ADS_ADS_SDS_FORMS_FORMS_FORMS_FORMS. .ToString());
objSIdHex = objSId.GetAs((int)ADSSECURITYLib.ADS_SID_FORMAT.ADS_SID_SAM);
//添加新的访问控制项(ACE)对象(objAce),以便用户对NTFS文件系统文件具有完全控制权限. > objAce1.Trustee =(objSIdHex).ToString();
objAce1.AccessMask =(int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL;
objAce1.AceType =(int)ActiveDs.TYPE_A AceFlags =(int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ONLY_ACE | 1;
objDAcl.AddAce(objAce1);
//添加一个新的访问控制条目对象(objAce),以便用户对NTFS文件系统文件夹具有完全控制权限.
objAce2 = new AccessControlEntryClass();
objAce2.受托人=(objSIdHex).ToString();
objAce2.AccessMask =(int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL; int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | 1;
objDAcl.AddAce(objAce2);
objSecDes.DiscretionaryAcl = objDAcl;
//在NTFS文件系统文件夹上设置权限.
objADsSec.SetSecurityDescriptor(objSecDes,``FILE://''+ vPath);
返回true;
}
catch(Exception exp)
{
throw exp;
}}
}
在调用此方法时,
GrantPermission(sFolderPath,sUserName);
此处sUserName->域名//用户名.效果很好
如果sUserName-> DomainName//UserGroupName ...我收到错误信息...
请,有人可以澄清一下.
推荐答案
移至Visual C#General论坛.
Moving to the Visual C# General forum.
-Tom Meschter
软件开发人员,Visual C#IDE
-Tom Meschter
Software Dev, Visual C# IDE
这篇关于NTFS文件夹权限(用户组)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!