给当前创建用户设置权限:
/*AccessControlSections:指定要保存或加载的安全描述符部分*/
using System.Security.AccessControl;
using System.Security.Cryptography;
using System.Security.Principal;
var path="";//需要设置访问权限的目录
var ds = new DirectorySecurity(path,AccessControlSections.Owner);
var sid = new SecurityIdentifier(WellKnownSidType.CreatorOwnerSid, null);
var ace = new FileSystemAccessRule(sid,
FileSystemRights.FullControl,
AccessControlType.Allow);
ds.AddAccessRule(ace);
给某给用户设置权限(转自文档):
/*调用*//*
需要添加以下命名空间:
using System.IO;
using System.Security.AccessControl;
*/
string sPath = Server.MapPath(path);
Directory.CreateDirectory(sPath);
addpathPower(sPath, "ASPNET", "FullControl");
/*封装函数*/
public void addpathPower(string pathname, string username, string power)
{
DirectoryInfo dirinfo = new DirectoryInfo(pathname);
if ((dirinfo.Attributes & FileAttributes.ReadOnly) != 0)
{
dirinfo.Attributes = FileAttributes.Normal;
}
//取得访问控制列表
DirectorySecurity dirsecurity = dirinfo.GetAccessControl();
switch (power)
{
case "FullControl":
dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
break;
case "ReadOnly":
dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow));
break;
case "Write":
dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Write, AccessControlType.Allow));
break;
case "Modify":
dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Modify, AccessControlType.Allow));
break;
}
dirinfo.SetAccessControl(dirsecurity);
}