C# Windows帐户和目录添加用户权限方法
2010-07-22 09:29
597 查看
/// <summary> /// 目录权限 /// </summary> public enum FloderRights { FullControl, Read, Write } /// <summary> /// 创建Windows帐户 /// </summary> /// <param name="pathname"></param> /// <returns></returns> public static void CreateLocalUser(string username, string password, string description) { DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); var NewUser = dirEntry.Children.Add(username, "user"); NewUser.Invoke("SetPassword", new object[] { password }); NewUser.Invoke("Put", new object[] { "Description", description }); NewUser.CommitChanges(); } /// <summary> /// 更改Windows帐户密码 /// </summary> /// <param name="username"></param> /// <param name="oldPwd"></param> /// <param name="newPwd"></param> public static void ChangeWinUserPasswd(string username, string oldPwd, string newPwd) { DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry userEntry = dirEntry.Children.Find(username, "user"); object[] password = new object[] { newPwd, oldPwd }; object ret = userEntry.Invoke("ChangePassword", password); userEntry.CommitChanges(); } /// <summary> /// 给目录添加用户和权限 /// </summary> /// <param name="pathname"></param> /// <param name="username"></param> /// <param name="qx"></param> public static void AddPathRights(string pathname, string username, FloderRights qx) { DirectoryInfo dirinfo = new DirectoryInfo(pathname); if ((dirinfo.Attributes & FileAttributes.ReadOnly) != 0) { dirinfo.Attributes = FileAttributes.Normal; } //取得访问控制列表 DirectorySecurity dirsecurity = dirinfo.GetAccessControl(); // string strDomain = Dns.GetHostName(); switch (qx) { case FloderRights.FullControl: dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.FullControl, AccessControlType.Allow)); break; case FloderRights.Read: dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow)); break; case FloderRights.Write: dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Write, AccessControlType.Allow)); break; default: dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.FullControl, AccessControlType.Deny)); break; } dirinfo.SetAccessControl(dirsecurity); //取消目录从父继承 DirectorySecurity dirSecurity = System.IO.Directory.GetAccessControl(pathname); dirSecurity.SetAccessRuleProtection(true, false); System.IO.Directory.SetAccessControl(pathname, dirSecurity); //AccessControlType.Allow允许访问受保护对象//Deny拒绝访问受保护对象 //FullControl、Read 和 Write 完全控制,读,写 //FileSystemRights.Write写入//Delete删除 //DeleteSubdirectoriesAndFiles删除文件夹和文件//ListDirectory读取 //Modify读写删除-修改//只读打开文件和复制// } /// <summary> /// 判断Windows用户是否存在 /// </summary> /// <param name="username"></param> /// <returns></returns> public static bool ExistWinUser(string username) { try { using (DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer")) { //删除存在用户 var delUser = dirEntry.Children.Find(username, "user"); return delUser != null; } } catch { return false; } } /// <summary> /// 删除Windows用户 /// </summary> /// <param name="username"></param> /// <returns></returns> public static bool DeleteWinUser(string username) { try { using (DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer")) { //删除存在用户 var delUser = dirEntry.Children.Find(username, "user"); if (delUser != null) { dirEntry.Children.Remove(delUser); } } return true; } catch { return false; } }
相关文章推荐
- C# Windows帐户和目录添加用户权限方法
- C# Windows帐户和目录添加用户权限方法
- [转]通过SQL Server 用户来添加Windows帐户并提升为管理员权限
- 把windows目录挂载mount到linux下,非root用户没有写权限解决方法
- 使用WMI列出Windows中某个目录的用户权限(C#)
- c#添加、删除、修改windows用户,目录用户
- 通过 SQL Server 用户来添加Windows帐户并提升为管理员权限
- 给MongoDB添加用户权限方法分享
- System.UnauthorizedAccessException: 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“NT AUTHORITY\NETWORK SERVICE”没有访问 temp 目录的足够权限。CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如
- c#活动目录添加用户
- C#作Windows服务获取运行目录的方法
- mongodb权限设置之添加管理员、普通用户的方法
- linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录
- Linux添加用户,目录权限
- 程序判断Windows用户帐户密码为空的方法
- windows db2 添加用户权限
- windows db2 添加用户权限
- windows db2 添加用户权限
- Windows命令行获取当前bat文件所在目录,添加永久系统环境变量的方法
- 【linux】FTP添加用户,设置权限和目录