zoukankan      html  css  js  c++  java
  • ADSI管理Windows2003系统帐号

         最近在开发一个虚拟主机管理的软件,需要用到用户权限管理这块,上网找了找资料,发现ADSI这块还不错,好像还有另外的一个新的东西可以实现操作用户帐号的功能,那个以后在研究下吧,操作Window2003用户的代码如下:

    using System;
    using System.DirectoryServices;
    using System.Collections;

    namespace CNVP.FM.IISControlService
    {
        
    /// <summary>
        
    /// 实现在开通IIS站点时候自动对系统帐号进行添加删除操作
        
    /// </summary>

        public class UserManager
        
    {
            
    public UserManager()
            
    {
                
            }

            
    /// <summary>
            
    /// 创建IIS登录帐号
            
    /// </summary>
            
    /// <param name="Accounts">登录帐号</param>
            
    /// <returns></returns>
          
            
    public static bool CreateUser(string Accounts)
            
    {
                
    try
                
    {
                    DirectoryEntry AD 
    = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
                    DirectoryEntry NewUser 
    = AD.Children.Add(Accounts, "user");//增加用户名
                    NewUser.Invoke("SetPassword"new object[] "LanTian123456" });//用户密码
                    NewUser.Invoke("Put"new object[] "FullName", Accounts });//用户全称  
                    NewUser.Invoke("Put"new object[] "Description""太平洋主机管理帐号" });//用户详细描述
                    NewUser.Invoke("Put""PasswordExpired"0);//用户下次登录需更改密码
                    
    //NewUser.Invoke("Put", "UserFlags", 66049);//密码永不过期
                    
    //NewUser.Invoke("Put", "HomeDirectory", Path); //主文件夹路径

                    
    //NewUser.Properties["UserFlags"].Add(0x0002);//禁用登录帐号
                    
    //NewUser.Properties["UserFlags"].Add(0x0040);//用户不能更改密码
                    ArrayList arl = new ArrayList();
                    arl.Add(
    0x0002);
                    arl.Add(
    0x0040);
                    arl.Add(
    0x10000);
                    NewUser.Properties[
    "UserFlags"].Value = arl.ToArray();

                    
    //NewUser.Properties["UserFlags"].Add(0x10000);//用户密码永不到期

                    NewUser.CommitChanges();
                    DirectoryEntry ObjUser
    =AD.Children.Find("Guests""group");
                    
    if (ObjUser.Name != null
                    
    {
                        ObjUser.Invoke(
    "Add"new object[] { NewUser.Path.ToString() }); 
                    }

                    ObjUser.Close();
                    AD.Close();
                    
    return true;
                }

                
    catch
                
    {
                    
    return false;
                }

            }

            
    /// <summary>
            
    /// 修改IIS登录帐号密码
            
    /// </summary>
            
    /// <param name="Accounts">登录帐号</param>
            
    /// <param name="Password">登录密码</param>
            
    /// <returns></returns>

            public static bool EditUser(string Accounts, string Password)
            
    {
                
    try
                
    {
                    DirectoryEntry AD 
    = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
                    DirectoryEntry ObjUser 
    = AD.Children.Find(Accounts, "user");
                    ObjUser.Invoke(
    "SetPassword", Password);
                    ObjUser.CommitChanges();
                    ObjUser.Close();
                    AD.Close();
                    
    return true;
                }

                
    catch
                
    {
                    
    return false;
                }

            }

            
    /// <summary>
            
    /// 删除IIS登录帐号
            
    /// </summary>
            
    /// <param name="Accounts">登录帐号</param>
            
    /// <returns></returns>

            public static bool DelUser(string Accounts)
            
    {
                
    try
                
    {
                    DirectoryEntry AD 
    = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
                    DirectoryEntry ObjUser 
    = AD.Children.Find(Accounts, "user");//找得用户
                    
    //AD.Children.Remove(ObjUser);//删除用户
                    ObjUser.GetType();
                    ObjUser.Close();
                    AD.Close();
                    
    return true;
                }

                
    catch
                
    {
                    
    return false;
                }

            }

        }

    }
  • 相关阅读:
    纽约顶级富婆鄙视链:4星|《我是个妈妈,我需要铂金包:一个耶鲁人类学博士的上东区育儿战争》
    2星|陈春花《顺德40年》:各种官宣的汇编,内容太虚,新信息太少
    人们喜欢传播符合自己三观的新闻,不在乎真假:4星|《环球科学》2018年12月号
    营销相关21本书
    5星|《辩论:美国制宪会议记录》:200年前的会议纪要
    3星|《品牌物理学》:理论没有实际应用案例,有推销软件的嫌疑
    关于思考的思考12本书,5星2本,4星7本
    Chrome插件 postman的使用方法详解!最全面的教程
    postman发送json请求,使用案例
    SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口
  • 原文地址:https://www.cnblogs.com/Apollo/p/753088.html
Copyright © 2011-2022 走看看