Tag: ldap

转义为LDAP查询的字符串中的非特殊字符

我希望我能恰当地提出这个问题。 这里有一个混合主题。 我在C#中创建了一个创建Active Directory用户的函数。 使用需要如下所示的LDAP字符串: userinfo.displayName = “Surname, Firstname” CN=” + userinfo.displayName, “user” 由于逗号位于字符串中,因此传回以下exception消息。 指定了无效的dn语法。 应用字符串后的完整dn如下所示 “CN=Surname**,** Lastname,OU=Users,DC=”Foo”,DC=”net” 通用名CN =中的逗号是问题… 有没有一种方法C#可以忽略字符串中的逗号? 有效地逃避它。

C#ActiveDirectory LDAP组查询

基本上我要做的是,我有一个ASP.Net Web应用程序,它使用Forms Authentication和一些自定义代码将它链接到ActiveDirectory(非常类似于它的工作原理)。 但是,每当我查询用户组的域控制器时,它只返回它们明确在的组而不是子组(id est,用户所属的特定安全组,比如组A,即组成员我想要的组,比如组B,用户明确在组A中,但只是隐含在组B中,因为组A是组B的成员)。 我已经阅读了tokenGroups查询可以帮助我在这里,但目前我没有办法解析这些数据。 然而,最可取的是,如果我可以通过LDAP查询传递某些组,并且如果该用户位于该组内,则让Domain控制器只给我一个布尔值(true / false)。 有什么建议?

在C#中,如何访问Active Directory以获取某个用户所属的组列表?

在C#中,如何访问Active Directory以获取某个用户所属的组列表? 用户详细信息的格式如下: “MYDOMAIN\myuser” 我一直在按照这里的说明进行操作,但只有在表格中有用户详细信息时才能使用它们: “LDAP://sample.com/CN=MySurname MyFirstname,OU=General,OU=Accounts,DC=sample,DC=com” 所以也许我要问的是,如何从第一个,更短的表格到下面的完全合格的表格? 非常感谢!

ActiveDirectoryMembershipProvider用于validation用户

我想使用ActiveDirectoryMembershipProvider的ValidateUser方法来validation用户是否存在于AD中。 我在表单中输入用户名和密码。 我想实例化提供程序并调用ValidateUser 我只是用post测试替换真值。 要做我想做的事情,我是否需要向提供商提供用户名和密码,以便它可以首先连接,即系统帐户..一旦建立,我可以检查我想要validation的用户? 谢谢,J

C#LDAP性能

在我工作的地方,我们有两种身份validation模式: CAS( http://www.jasig.org/cas ) LDAP CAS是主要方法,但在高峰时段通常不可靠,因此当我们注意到CAS停机时,我们一直使用LDAP作为后备模式。 以前,我们使用PHP来执行LDAP回退并获得合理的性能。 除了预期的网络延迟时间之外,登录期间没有明显的延迟。 使用LDAP完成登录大约需要250-500毫秒。 现在,我们正在创建一个新系统,并选择ASP.NET MVC4作为平台而不是PHP,我的任务是尝试让这个回退再次运行。 我已经把头发拉了大约6个小时,现在一遍又一遍地尝试不同的东西,得到相同的结果(也许我疯了)。 我终于设法连接到LDAP,validation用户身份,并从LDAP获取其属性。 但是,无论我尝试什么方法,查询始终需要4.5秒才能完成。 这让我感到非常惊讶 ,因为PHP版本能够在1/8的时间内完成几乎相同的事情,并且似乎.NET框架对LDAP / ActiveDirectory提供了出色的支持。 我做了一件非常可怕的错误吗? 以下是我现在的function内容(这是最新的迭代,可以在一个4.5秒的查询中完成所有操作): public Models.CASAttributes Authenticate(string username, string pwd) { string uid = string.Format(“uid={0},ou=People,o=byu.edu”, username); LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier(“ldap.byu.edu”, 636, false, false); try { using (LdapConnection connection = new LdapConnection(identifier)) { connection.Credential = new NetworkCredential(uid, pwd); connection.AuthType […]

Active Directory中联机的计算机列表

我正在使用这段代码输出我网络上所有计算机的列表(语言是jscript.net,但它只是对C#的一个小操作)。 var parentEntry = new DirectoryEntry(); parentEntry.Path = “WinNT:”; for(var childEntry in parentEntry.Children) { if(childEntry.SchemaClassName == “Domain”) { var parentDomain = new TreeNode(childEntry.Name); this.treeView1.Nodes.Add(parentDomain); var subChildEntry : DirectoryEntry; var subParentEntry = new DirectoryEntry(); subParentEntry.Path = “WinNT://” + childEntry.Name; for(subChildEntry in subParentEntry.Children) { var newNode1 = new TreeNode(subChildEntry.Name); if(subChildEntry.SchemaClassName == “Computer”) { parentDomain.Nodes.Add(newNode1); } } } […]

在.NET MVC中使用LDAP /网络凭据validation用户

我正在使用.NET中的MVC 3应用程序,我对LDAP没有太多经验,但我希望能够简单地validation用户是否存在。 我不需要validation用户名和密码组合,如下例所示: ASP.Net MVC中的LDAP身份validation 虽然这几乎是我想要做的。 我只需要在添加用户名之前validation用户名。 有没有一种简单的方法在.NET / MVC中执行此操作

除基本身份validation外,LdapConnection无法重新绑定

我有点迷失这个。 我在以下代码中调用.NET LdapConnection对象。 第一个查询工作正常(SearchRequest),并使用默认的身份validation类型,协商。 在这个示例代码的foreach循环中,我然后尝试执行绑定以检查我在searchRequest中硬编码的用户的密码。 我在SearchResultEntry中获得了一个很好的DistinguishedName,并且Bind()可以工作,但只能使用AuthType.Basic。 没有其他选项可以工作,我也不热衷于使用Basic(不安全)身份validation。 想法? public LoginResult Authenticate(string userName, string password) { LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier(_serverName, _port); NetworkCredential credential = new NetworkCredential(_ServerUsername, _Serverpwd); LdapConnection ldapConnection = new LdapConnection(identifier, credential); ldapConnection.Timeout = new TimeSpan(0, 0, _timeout); try { SearchRequest searchRequest = new SearchRequest (_distinguisedName, “(&(objectClass=user)(givenname=Joe)(sn=Smith))”, SearchScope.Subtree, null); // cast the returned directory […]

如何在C#中的AD LDS条目上获得用户的有效权限?

我有使用AD LDS存储其分层数据的第三方应用程序,我需要在ASP.NET MVC中为此系统提供Web UI。 它在目录条目上使用DACL来控制用户对各个条目的访问权限。 我发现很少有好文章解释如何读取DirectoryEntry ActiveDirectoryAccessRules ,但我找不到任何有效的方法来计算特定用户的有效权限 。 是否有任何支持Microsoft API或库可用,或者我需要发明自己的方式? 调查类似主题的人的参考URL: 编写自己的AD / ADAM权限编辑器 – 3 .NET开发人员目录服务编程指南 C#中的访问控制列表

在ASP.NET Core中使用DirectoryServices

我正在将我的ASP.NET Core RC1应用程序升级到RC2。 我在一些* .cs文件中有一些对System.DirectoryServices和System.DirectoryServices.AccountManagement引用,以便我可以查询LDAP。 但我不知道如何在Project.json文件中的RC2中添加对它的引用。 我尝试的所有东西都给了我更多的错误。 任何帮助表示赞赏。 { “version”: “1.0.0-*”, “buildOptions”: { “emitEntryPoint”: true, “preserveCompilationContext”: true }, “dependencies”: { “Microsoft.NETCore.App”: { “version”: “1.0.0-rc2-3002702”, “type”: “default” }, “Microsoft.AspNetCore.Diagnostics”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.Server.IISIntegration”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.Mvc”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.Mvc.TagHelpers”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.Server.Kestrel”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.StaticFiles”: “1.0.0-rc2-final”, “Microsoft.AspNetCore.Razor.Tools”: “1.0.0-preview1-final”, “Microsoft.EntityFrameworkCore”: “1.0.0-rc2-final”, “Microsoft.EntityFrameworkCore.SqlServer”: “1.0.0-rc2-final”, “Microsoft.EntityFrameworkCore.Tools”: “1.0.0-preview1-final”, “Microsoft.EntityFrameworkCore.SqlServer.Design”: “1.0.0-rc2-final”, “Microsoft.Extensions.Configuration.FileExtensions”: “1.0.0-rc2-final”, “Microsoft.Extensions.Configuration.EnvironmentVariables”: “1.0.0-rc2-final”, “Microsoft.Extensions.Configuration.Json”: “1.0.0-rc2-final”, […]