验证域账户的用户名和密码

//验证需要的方法。

public static bool IsAuthenticated(string domain, string username, string pwd)
    {
        string strPath = "LDAP://OU=People,DC=RCOMM,DC=local";
        String domainAndUsername = domain + @"\" + username;
        DirectoryEntry entry = new DirectoryEntry(strPath, domainAndUsername, pwd);

        try
        {    //Bind to the native AdsObject to force authentication.           
            Object obj = entry.NativeObject;

            DirectorySearcher search = new DirectorySearcher(entry);

            search.Filter = "(SAMAccountName=" + username + ")";
            search.PropertiesToLoad.Add("cn");
            SearchResult result = search.FindOne();

            if (null == result)
            {
                return false;
            }

            //Update the new path to the user in the directory.
            strPath = result.Path;
            //_filterAttribute = (String)result.Properties["cn"][0];
        }
        catch (Exception ex)
        {
            //throw new Exception("Error authenticating user. " + ex.Message);
            return false;
        }

        return true;
    }

 

//调用

if (LoginLayer.IsAuthenticated("kefeng.rcomm.local", "someguy", "admin"))
        {
            Response.Write("验证成功!");
        }
        else
        {
            Response.Write("验证失败!");
        }

posted on 2010-05-04 09:32  冰危节奏  阅读(2418)  评论(2编辑  收藏  举报

导航