AD域验证DirectoryEntry用法

引用:

using System.Configuration;
using System.DirectoryServices;

web.config加配置:把下面的ip改为你自己域服务器ip

<appSettings>
    <!--域登陆Path-->
    <add key="ADPath" value="LDAP:10.10.1.111"/>
    <!--域登陆Domain-->
    <add key="ADDomain" value="10.10.1.111"/>
  </appSettings>
/// <summary>
        /// 域账号是否登陆成功
        /// </summary>
        /// <param name="username">域登陆账号</param>
        /// <param name="pwd">域登陆密码</param>
        /// <returns></returns>
        public static bool IsAuthenticated(string username, string pwd)
        {
            string adPath = ConfigurationManager.AppSettings["ADPath"].ToString();
            string domain = ConfigurationManager.AppSettings["ADDomain"].ToString();
            string domainUserName = domain + @"\" + username;      //或者可以这样 string domainUserName = username;
            DirectoryEntry entry = new DirectoryEntry(adPath, domainUserName, pwd);
            try
            {
                DirectorySearcher deSearch = new DirectorySearcher(entry);
                deSearch.Filter = "(&(objectCategory=Person)(objectClass=User)(SAMAccountName=" + username + "))";
                deSearch.PropertiesToLoad.Add("cn");
                SearchResult result = deSearch.FindOne();
                if (null == result)
                {
                    return false;
                }
                //可以获取相关信息
                string _path = result.Path;
                string _filterAttribute = (string)result.Properties["cn"][0];
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return true;
        }
时间: 2024-10-05 05:50:09

AD域验证DirectoryEntry用法的相关文章

使用java连接AD域,验证账号密码是否正确

eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮件服务器等.最常用的要数AD域了.因为window系统在国内占据了大量的江山.做起来也很方便.我这篇文章就是写,如何用java去实现AD域的身份验证.好了,直接看代码吧: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

asp.net AD 域验证

1.获取环境变量 string strAuthUser = request.ServerVariables["AUTH_USER"] 以上这行代码是用来获取当前用户的登录名 2.IIS站点设置,除了windows验证启用,其余的全部设置禁用 3.对WEB配置 web.config中加入(针对本站点,建议采用) <httpRuntime maxRequestPathLength="360" maxQueryStringLength="1024"

ASP.NET站点Windows身份验证集成AD域,非LDAP

.h2cls { background: #6fa833 none repeat scroll 0 0 !important; color: #fff; font-family: "微软雅黑", "宋体", "黑体", Arial; margin-bottom: 5px; padding-left: 15px } h3 { background-color: #f5f5f5; border-left: 13px solid #6fa833; co

AD 域账号登录

域服务数据读写,有俩种模式 1.轻量级的数据读取 _domain是服务器的域名 获取连接PrincipalContext pc = new PrincipalContext(ContextType.Domain, _domain) 验证账号密码pc.ValidateCredentials(jobNumber, password)引用System.DirectoryServices.AccountManagement命名空间后,按照如下如下方法,AD域验证 using (PrincipalCont

JAVA 通过LDAP获取AD域用户及组织信息

因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的AD域组织和用户信息,实现域认证和单点登录. LDAP: LDAP是轻量目录访问协议 AD域:微软基于域模式的集中化管理 1.常规的AD域登陆验证 LdapContext dc = null;             Hashtable<String, String> env = new Hasht

Ad域身份验证总结

活动目录(Active Directory)是面向Windows Standard Server.Windows Enterprise Server以及 Windows Datacenter Server的目录服务.(Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows Web Server的计算机进行管理.)Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息.Active Di

上网行为管理AD域集成windos身份验证SSO单点登录

一.背景需求 在大型公司项目上会使用到AD域集成windos身份验证SS0单点登录,而不同用户有不同的环境,不同环境就会有不同的验证需求,使用微软AD域进行用户身份验证,会经常出现在客户的需求中. 二.网域上网行为管理集成windos身份验证功能. 什么是AD域集成windos身份验证了?就是基于windos系统的电脑端都需要加入到AD域或者这些没有加入到AD域的windos系统的电脑必须要通过AD域的用户验证信息才能上网.为什么大型企业需要windos身份验证?通过windos身份验证分配给每

Windows Azure SSTP模式VPN Client使用AD域用户验证登录

我们上面一篇文章介绍了,如何在windows azure下搭建SSTP模式的vpn服务,搭建配置后我们遗留了一个,什么问题呢,我们都知道,一般的独立vpn是使用独立的账户及密码的,尤其是托管到外面的vpn服务器,无法使用AD域用户验证.这样会造成vpn用户拥有两套用户及密码,管理起来很不方便.再说说我的环境,我的环境是把vpn服务器放在了windows azure上,这样算来也是托管类型的,但是windows azure毕竟是微软出的,AD也是微软的,在设计上肯定考虑了,最终呢托管到window

使用JAVA进行ad域身份验证常用属性详解

一些变态的公司经常对开发者提出一些变态的问题.比如在oa系统中,要求登录验证必须使用ad域进行登录.还有的如登录crm系统必须使用公司的阿里云邮箱账号进行身份验证等等. 作为程序员我们只能按照客户的需求进行完善系统.毕竟客户才是我们的衣食父母,没办法拒绝.我这里就列举一些,在系统中集成ad域身份验证的一些配置信息,并一一解释他们的作用. 直接看代码: public boolean login() { // 判断必填字段是否全部填写 if (StringUtils.isEmpty(this.use