现在的位置: 首页 > 综合 > 正文

C#实现AD域认证用户源代码

2012年04月08日 ⁄ 综合 ⁄ 共 2512字 ⁄ 字号 评论关闭

public bool IsPass(string userAccount, string password)
        {

                    string DomainName = “DC=SYQUEYRY,DC=COM,DC=CN”;
                    string ADPath = “LDAP://SYQUEYRY.COM.CN”;
                    string ADDomain = “SYQUEYRY”;
                    //获得当前域中的路径
                    string _ADPath = ADPath + "/" + ADDomain;

                    string domainAndUsername;
                    bool hasDomain = false;
                    if (userAccount.StartsWith(DomainName, StringComparison.CurrentCultureIgnoreCase))
                    {
                        hasDomain = true;
                    }
                    if (hasDomain)
                    {
                        domainAndUsername = userAccount;
                    }
                    else
                    {
                        domainAndUsername = DomainName + @"\" + userAccount;
                    }
                    DirectoryEntry entry = new DirectoryEntry(_ADPath, domainAndUsername, password);
                    DirectorySearcher search = new DirectorySearcher(entry);
                    if (hasDomain)
                    {
                        userAccount = userAccount.Substring(DomainName.Length + 1);
                    }
                    search.Filter = "(sAMAccountName=" + userAccount + ")";
                    search.PropertiesToLoad.Add("displayName");
                    SearchResult adUser = null;
                    try
                    {
                        adUser = search.FindOne();
                        if (adUser == null)
                        {
                            _error = "域认证失败";
                        }
                        else
                        {
                            if (Convert.ToInt32(adUser.Properties["userAccountControl"][0]) == 2)
                            {
                                _myUser = new MyUser(userAccount, password, adUser.Properties["displayName"].ToString());
                            }
                            else
                            {
                                _error = "此用户已禁用";
                            }
                            adUser = null;
                        }
                    }
                    catch (Exception ex)
                    {
                        _error = ex.Message;
                        adUser = null;
                    }
                    finally
                    {
                        entry.Close();
                        entry = null;
                        search.Dispose();
                        search = null;
                    }
                    return adUser != null;
}

欢迎访问:http://121.18.78.216 适易查询分析、工作流、内容管理及项目管理演示平台

抱歉!评论已关闭.