使用DirectoryServices给文件添加访问权限
来源:互联网 发布:免费网络加速 编辑:程序博客网 时间:2024/05/18 17:58
using System;
using System.Collections;
using ActiveDs;
namespace PardesiServices.FixFilePermission
{
class FileSecurity
{
[STAThread]
static void Main(string[] args)
{
string strFile = @"D:/mmcInst.log";
try
{
ADsSecurityUtilityClass secuUtil = new ADsSecurityUtilityClass();
object ob = secuUtil.GetSecurityDescriptor(
strFile,
(int)ActiveDs.ADS_PATHTYPE_ENUM.ADS_PATH_FILE,
(int)ActiveDs.ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);
if (null != ob)
{
ActiveDs.IADsSecurityDescriptor sd =
(IADsSecurityDescriptor)ob;
ActiveDs.IADsAccessControlList obDacl =
(ActiveDs.IADsAccessControlList)sd.DiscretionaryAcl;
bool bAddAce = true;
IEnumerator obAceEnum = obDacl.GetEnumerator();
while (obAceEnum.MoveNext())
{
IADsAccessControlEntry obAce =
(IADsAccessControlEntry)obAceEnum.Current;
Console.WriteLine("Trustee: {0}", obAce.Trustee);
// Check if "ASPNET" account is trustee of ACE or not.
if (obAce.Trustee.IndexOf("ASPNET") != -1)
{
// Check if this is a ALOWED Ace or not.
if (obAce.AceType ==
(int)ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED)
{
bAddAce = false;
}
}
}
// If bAddAce flag is set, then we will add it.
if (bAddAce)
{
AccessControlEntryClass obNewAce =
new AccessControlEntryClass();
obNewAce.AceType =
(int)ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;
obNewAce.Trustee = @"ASPNET";
obNewAce.AccessMask = -1;
obDacl.AddAce(obNewAce);
sd.DiscretionaryAcl = obDacl;
secuUtil.SetSecurityDescriptor(
strFile,
(int)ADS_PATHTYPE_ENUM.ADS_PATH_FILE,
sd,
(int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
using System.Collections;
using ActiveDs;
namespace PardesiServices.FixFilePermission
{
class FileSecurity
{
[STAThread]
static void Main(string[] args)
{
string strFile = @"D:/mmcInst.log";
try
{
ADsSecurityUtilityClass secuUtil = new ADsSecurityUtilityClass();
object ob = secuUtil.GetSecurityDescriptor(
strFile,
(int)ActiveDs.ADS_PATHTYPE_ENUM.ADS_PATH_FILE,
(int)ActiveDs.ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);
if (null != ob)
{
ActiveDs.IADsSecurityDescriptor sd =
(IADsSecurityDescriptor)ob;
ActiveDs.IADsAccessControlList obDacl =
(ActiveDs.IADsAccessControlList)sd.DiscretionaryAcl;
bool bAddAce = true;
IEnumerator obAceEnum = obDacl.GetEnumerator();
while (obAceEnum.MoveNext())
{
IADsAccessControlEntry obAce =
(IADsAccessControlEntry)obAceEnum.Current;
Console.WriteLine("Trustee: {0}", obAce.Trustee);
// Check if "ASPNET" account is trustee of ACE or not.
if (obAce.Trustee.IndexOf("ASPNET") != -1)
{
// Check if this is a ALOWED Ace or not.
if (obAce.AceType ==
(int)ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED)
{
bAddAce = false;
}
}
}
// If bAddAce flag is set, then we will add it.
if (bAddAce)
{
AccessControlEntryClass obNewAce =
new AccessControlEntryClass();
obNewAce.AceType =
(int)ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;
obNewAce.Trustee = @"ASPNET";
obNewAce.AccessMask = -1;
obDacl.AddAce(obNewAce);
sd.DiscretionaryAcl = obDacl;
secuUtil.SetSecurityDescriptor(
strFile,
(int)ADS_PATHTYPE_ENUM.ADS_PATH_FILE,
sd,
(int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
- 使用DirectoryServices给文件添加访问权限
- 使用DirectoryServices给文件添加访问权限
- Linux_使用java给文件添加权限
- 给mysql添加远程访问权限
- Linux下给文件添加可执行权限
- 给linux文件添加可执行权限
- Elmah框架,添加日志文件访问权限
- Elmah框架,添加日志文件访问权限
- SpringMVC给控制器添加自定义注解控制访问权限
- SpringMVC给控制器添加自定义注解控制访问权限
- DirectoryServices中的DirectoryEntry添加用户
- DirectoryServices中的DirectoryEntry添加用户
- 使用System.DirectoryServices来操作组,用户的添加和删除
- linux给文件或目录添加apache权限
- linux给文件或目录添加apache权限
- 添加数据库访问权限
- 添加 sdcard访问权限
- mac上给git server 添加一个repository,并且添加一个git client的访问权限
- “中国著名商业街”
- 伤心半年
- 技术vs.业务
- 将DataView转化成DataTable
- DataTable中数据记录的统计
- 使用DirectoryServices给文件添加访问权限
- 如何使用ArrayList/Hashtable绑定DataGrid/DataList/Reapter
- 委托(Delegate)
- HOW TO: Implement a DataSet SELECT DISTINCT Helper Class in Visual C# .NET
- byte[]转换成16进制字符串的高效方法或算法
- 获取一个类的所有属性、方法的名字
- ibm developer的一些对我有用的网址
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable 类