当前位置:编程学习 > C#/ASP.NET >>

用C#在域中增加用户和邮箱

答案:        public int CreatUser(string loginname)
        {
            string p_strDomainLoginName="admin";
            string p_strDomainLoginPassword="";
            string p_strDomainName="myweb.com";
            string p_strDCName="DC=myweb,DC=com";
            string p_strServerName="myweb";
            int ReturnValue;

            CDO.PersonClass pcUser;
            CDOEXM.IMailboxStore MailBox;
            string strLDAP="LDAP://" + p_strDomainName + "/CN=" + loginname + ",CN=users," + p_strDCName;
            string strHomeMDBURL="LDAP://" + p_strDomainName + "/CN=Mailbox Store (" + p_strServerName + ")," +
                                "CN=First Storage Group,CN=InformationStore," +
                                "CN=" + p_strServerName + ",CN=Servers,CN=First Administrative Group," +
                                "CN=Administrative Groups,CN=First Organization," +
                                "CN=Microsoft Exchange,CN=Services,CN=Configuration," + p_strDCName;

            if (loginname.Length>0)
            {
                try
                {
                    //增加用户
                    pcUser=new PersonClass();
                    pcUser.FirstName=loginname;
                    pcUser.LastName="";
                    pcUser.Fields["userAccountControl"].Value=66048;            //设置该用户密码永不过期
                    pcUser.Fields["userPrincipalName"].Value=loginname;            //设置用户的登录帐号
                    pcUser.Fields.Update();
                    pcUser.DataSource.SaveTo(strLDAP,null,ADODB.ConnectModeEnum.adModeReadWrite ,ADODB.RecordCreateOptionsEnum.adCreateOverwrite,ADODB.RecordOpenOptionsEnum.adOpenSource,p_strDomainLoginName,p_strDomainLoginPassword);

                    //添加邮箱
                    MailBox=(IMailboxStore)pcUser.GetInterface("IMailboxStore");
                    MailBox.CreateMailbox(strHomeMDBURL);

                    pcUser.Email="SMTP:" + loginname + "@" + p_strDomainName;
                    pcUser.Fields["mailnickname"].Value="mailnickname" + loginname;
                    pcUser.Fields.Update();
                    pcUser.DataSource.Save();
                    ReturnValue=1;
                }
                catch
                {
                    ReturnValue=-1;
                }
            }
            else
            {
                ReturnValue=-1;
            }
            return ReturnValue;
        }
注意引用CDO和CDOEXM。
欢迎互相交流。

上一个:NET中对DCOM的调用
下一个:动态加载用户控件(整理)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,