我在本地计算机(Windows Server 2008 R2盒)上为新应用程序设置了ADLDS实例,并且已经敲除了一些.Net代码来访问它.这是我正在测试的功能之一,因为你可以看到它相当简单的东西.
Dim MyLdapUri As New Uri(searchRoot)
Using MyContext As New PrincipalContext(ContextType.ApplicationDirectory,
MyLdapUri.Authority,
MyLdapUri.LocalPath.Substring(1), ContextOptions.SimpleBind,
strUsername, strPassword)
Return UserPrincipal.FindByIdentity(MyContext, IdentityType.Name, username)
End Using
Run Code Online (Sandbox Code Playgroud)
我反复发现的一件事是我第一次调用此函数或任何其他函数从测试床应用程序访问实例时出现约18秒的延迟.对AD LDS实例的后续调用大约为40ms.一旦你离开实例几分钟,那么第一次通话后回拨18秒.
我在事件日志中找不到任何不好的东西.我也试过以不同的方式连接到实例(简单绑定到上面实例中定义的用户,使用本地和域Windows帐户),并且第一次命中的这18秒额外延迟总是发生.任何人都可以给我指出导致这种情况的原因和/或我如何诊断/修复它吗?
我在将ASP.NET Web服务与Active Directory设置集成时遇到问题,并使用它来验证用户并检查他们是AD组的成员,以及他们是否有权使用我的自定义应用程序.
我的自定义应用程序具有自己的权限,管理员配置允许使用自定义应用程序的Active Directory组.
我遇到的问题是,来自不同Trusted AD林的用户(具有完全双向信任)尝试登录时,我无法从我的ASP.NET Web服务与之通信的AD服务器中获取他的组列表.ASP.NET Web服务只能访问AD服务器(AD Main),而不能访问信任AD控制器(AD Secondary).
用户是(AD辅助)域的成员,我可以针对(AD Main)域对该用户进行身份验证,但是当用户位于(AD Main)域时,我无法从(AD Main)域获取组列表(AD Secondary)域名.
我试过这段代码.
StringCollection groupids = new StringCollection();
try
{
DirectoryLibrary dirLib = new DirectoryLibrary();
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://" + domain,username, password);
if (directoryEntry != null)
{
//Enum the properties so we can see what is in them
foreach (string propname in directoryEntry.Properties.PropertyNames)
{
Debug.WriteLine(propname);
}
object obGroups = directoryEntry.Invoke("Groups");
foreach (object ob in (IEnumerable)obGroups)
{
// Create object for each group.
DirectoryEntry obGpEntry = …Run Code Online (Sandbox Code Playgroud) 是否有一种完全自动化的方式来验证使用IE8 +与Apache 的用户,而无需用户输入任何形式的凭据?即使我正在运行Windows,运行IIS也不是一个真正的选择.
我发现了一些基于Perl的解决方案应该可以工作,但我只能在*Nix上使用大量的模糊测试.
我目前正在使用authnz_ldap_module,它工作得很好,但是用户真的很烦人,因为必须为他们打开的每个新会话输入用户ID和密码而烦恼.
有任何想法吗?
我知道LDAP绑定如何使用搜索进行身份验证,但如果我想要所有的全名条目,我该怎么办...那么如何才能获得所有人的全名或电子邮件?
下面我使用LDAP绑定进行身份验证,我可以搜索一个人,但如果我想要它们怎么办?
<?php
// using ldap bind
$ldaprdn = 'uname'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是我的一些MySQL代码填充html列表:
<ol>
<?php
mysql_connect("kool", "ohjoa", "sampa") or die(mysql_error());
mysql_select_db("DBtest") or die(mysql_error()); …Run Code Online (Sandbox Code Playgroud) 此命令:dsconfigad -show执行我需要的操作,但我需要管理员权限才能运行它。
上面的命令输出了一些我感兴趣的信息:
You are bound to Active Directory:
Active Directory Forest = xx.xxxxxx.local
Active Directory Domain = xx.xxxxxx.local
Computer Account = (computer name)
Run Code Online (Sandbox Code Playgroud)
我希望能够以Active Directory Domain编程方式看到上面的内容,并且最好不需要具有 sudo 权限。
有什么建议?我已经浏览了 Open Directory 文档,但对我来说如何做到这一点并不完全显而易见。我还尝试了一些代码示例,只是为了查询 AD 中的某些内容而没有成功……我将继续努力,但我希望这里有人有一些知识可以分享。
我知道我的谷歌搜索技能让我失望,因为必须有这样的东西:一个简单易用的远程托管目录服务(甚至更好,通过几个不同的接口暴露用户目录,以及SSO).
你知道一个和/或有一个推荐吗?
我正在关注Atlassian Crowd - http://www.atlassian.com/software/crowd/overview - 它与可插拔接口很接近,但它没有实现LDAP.它只能连接到现有的LDAP服务器.
有没有人知道我们如何找到
上次使用C#备份活动目录时?
据我所知,当我们运行这个命令时,repadmin/showbackup
它将向我们展示全部细节.我试图使用C#获得dsa签名的价值,但即使这个值也没有多大意义,并且将帮助我们获得正确的信息.
喜欢从哪个域控制器备份启动和何时?
任何人都知道如何使用C#获取活动目录的最后一个备份细节?
提前致谢
我正在尝试在我的Android应用程序中建立与LDAP服务器的连接,并且正在使用UnboundID SDK.最近,从不安全的LDAP到安全的LDAP进行了更改,我必须相应地更改应用程序.我已获得SSL证书文件进行验证.我已经使用的文件,以使密钥库的描述在这里.我在我的应用程序的assets文件夹中有这个密钥库文件,并且从那里开始.下面的代码当前不起作用,并抛出异常:
LDAPException(resultCode = 01(connect error),errorMessage =('尝试连接到服务器时发生错误place.myserver.com:636:javax.net.ssl.SSLHandShakeException:java.security.cert.CertPathValidatorException:Trust anchor for未找到证书路径
// code from above link
AssetManager assetManager = getApplicationContext().getAssets();
InputStream keyStoreInputStream = assetManager.open("yourapp.store");
KeyStore trustStore = KeyStore.getInstance("BKS");
trustStore.load(keyStoreInputStream, "myPassword".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(trustStore);
// my code
SSLUtil sslUtil = new SSLUtil(tmf.getTrustManagers());
LDAPConnection connection = new LDAPConnection(sslUtil.createSSLSocketFactory());
connection.connect("place.myserver.com", 636);
Run Code Online (Sandbox Code Playgroud)
但是,代码段:
SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
LDAPConnection connection = new LDAPConnection(sslUtil.createSSLSocketFactory());
connection.connect("place.myserver.com", 636);
Run Code Online (Sandbox Code Playgroud)
确实有效(虽然我被高层人士告知,这将是不安全的).我不太清楚我在这里做错了什么,所以任何帮助都会受到赞赏.另外,如果有一个更好的方法来完成这个比我上面尝试做的更多,请随时告诉我:)我想坚持使用UnboundID库,因为其余的代码已经使用这也是,如果我使用TrustAllTrustManager一切正常.
我正在寻找一个可以检索Exchange通讯组列表的LDAP查询.
如果我做的很简单,(objectClass=Group)我会得到太多的团体,其中大部分没用.
希望有人能在这里找出我的错误,因为我会四处走动而不会在哪里!我有一个WAMP5安装,它在Win XP机器上集成了PHP Version 5.2.4,Apache/2.2.4(Win32)和MYSQL.一切正常,但我无法获得LDAP支持.
我在php.ini中检查了extension_dir ="c:/ wamp/php/ext /"和extension = php_ldap.dll并检查了dll实际上是在该文件夹中.我已将libeay32.dll和ssleay32.dll复制到c:windows\system32文件夹
使用此代码:
$host = "192.168.56.25";
if (!$ldapconn = ldap_connect($host, 80)) {
echo "Error! Could not connect to LDAP host $host\n";
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:致命错误:调用未定义的函数ldap_connect()...我不知道从哪里开始检查,因为我猜我的WAMP所有条件都考虑到了Ldap.请帮忙!谢谢