Articles of 活动目录

如何检查计算机的域帐号是否无效(信任被破坏)?

我必须承认其domain accounts不再有效的笔记本电脑。 由于几个问题,可能会发生无效的域帐户。 大多数情况下,客户端从备份恢复,然后域帐户不再有效 在这种情况下,行为是: 用户的login工作通过cached credentials 用户has access to shares服务器上的has access to shares和文件(NTLM) 通过Kerberos does not work访问Kerberos does not work 有没有可能检查电脑帐户的有效性?

从Active Directory获取用户的组成员身份

我怎么能从AD得到一个用户的组成员资格,最好使用与我用来获取用户的Department属性相同的模式,如下所示? 我已经find了几个例子,但是所有示例技术的相交集是非常小的,缺乏这个部门查询的紧密性和简单性: var adServer = ConfigurationManager.AppSettings["adServer"] ?? "localhost"; var remoteRoot = new DirectoryEntry(GetRootPath(adServer)); var searcher = new DirectorySearcher(remoteRoot, string.Format("(SAMAccountName={0})", shortUserName)); searcher.PropertiesToLoad.Add("Department"); SearchResult result = null; result = searcher.FindOne();

IIS:将Kerberos用于不在域中的客户端计算机

一台不属于域(但是在networking上)的计算机是否可以通过IIS8发布的网站进行身份validation,其中该网站的身份validation仅与“Negotiate:Kerberos”的单个提供程序“Windows身份validation”(并禁用内核模式身份validation)? 我问,因为我正在尝试做到这一点,但我不能通过身份validation到网站(但单独尝试将身份validation传递到数据库)。 我在客户端的响应中看到了“WWW-Authenticate:Negotiate”标题,但客户端似乎只在随后的(重新)请求中发送“NTLM Type1:Negotiation”(NTLMS Type1:Negotiation)(NTLMSSP)。 无论是我还是不正确地解释Fiddler2的结果! 我正在使用Kerberos,因为大多数客户端将是域计算机,我需要将用户凭据从Web应用程序传递回数据库。 我希望能够对非域名计算机做同样的事情,他们只会被提示input一个用户名/域名/密码,这个用户名/域名/密码将被validation并转换成服务器上的Kerberos票据。 请注意,出于testing目的,Windows 8既是服务器又是客户端。 在生产中,服务器将是Windows 2008 Server R2,客户端将主要是Windows 7(尽pipe会有一些Windows 8客户端)。

如何检查用户是否属于java中的某个AD组

我知道这肯定是一个非常简单的问题,但是我对java很陌生,并且很难得到我需要的确切代码。 我需要做的是从Windows获取当前login用户名,并检查该用户是否属于某个configuration文件中需要定义的特定AD用户组。 在C#中执行起来非常简单,但我不知道如何在JAVA中执行它。 示例代码会很好。 在c#中,我将安全组放入App.Config到应用程序设置,然后我可以抓取当前login的用户的Windows身份,然后遍历用户所属的所有组,并与所需的匹配。 我需要在java中完全相同

从不同的不受信任域中模拟Windows或Active Directory用户

我需要使用Windows身份validation对远程SQL Server进行身份validation。 远程SQL Server正在另一个与我当前通过Windowslogin的域没有信任关系的域中运行。 我无法使用SQL Server身份validation,因为SQL Server被configuration为仅信任域身份validation。 Windows本身允许通过用户界面进行这种types的模仿: 我以前使用过System.Security.Principal WindowsImpersonationContext类,但似乎依赖于属于受信任域的所需用户名。 我使用的是Visual Studio 2012,可以使用Microsoft.Net 4.5,最好是VB,但是如果需要,我可以很容易地从C#转换代码。

使用Powershell更新Active Directory中的Active Directory用户属性

在使用Powershell v2.0的Windows Server 2003 R2环境中,如何复制Set-QADUser的function以更新Active Directory中的用户属性(如电话号码和标题)? 这里的技巧是,我想这样做,而不依赖于Set-QADUser,我没有select使用Server 2008的commandlets。 谢谢。

根据Active DirectoryvalidationNT和LM散列

我正在使用NTLM协议编写Web应用程序身份validation用户。 我已经成功从客户端获取密码的NT和LM哈希值。 我如何validation他们对Active Directory以确保密码是正确的。 我正在使用C#,但我认为我也可以调用本地库。 编辑 :我看不到回票的理由。 NTLM(v2)协议已经过时,所以很难find关于如何处理它的相关信息。 尤其是从C#这样的现代语言中。 但是我发现了两种可能的方法: 使用Windows的本机SSPI调用(不是由Microsoft推荐的),但可以通过适当的包装。 幸运的是,有一个例子: http : //pinvoke.net/default.aspx/secur32/InitializeSecurityContext.html这种方法似乎工作。 我能够validation帐户。 但仍然存在一些问题。 如在客户端的HTTP请求之间传输服务器的安全上下文信息,调用不安全的代码,不可能在其他系统上执行这些操作。 尝试通过System.Net.Security.NegotiateStream完成打包调用。 这个想法很好,但不知道如何实现这一点。

Win32:如何根据Active Directoryvalidation凭据?

它已被问及 .NET的答案,但现在是时候得到本机Win32代码的答案: 我如何validationWindows用户名和密码? 我之前问过这个问题的托pipe代码 。 现在是本地解决scheme的时候了。 它需要指出一些更常见的解决scheme的陷阱: 无效的方法1.使用模拟查询Active Directory 很多人build议查询Active Directory的东西。 如果抛出exception,那么你知道凭据是无效的 – 正如在这个stackoverflow问题中所build议的。 然而,这种方法有一些严重的缺陷 : 您不仅要validation域帐户,还要进行隐式授权检查。 也就是说,您正在使用模拟令牌从AD读取属性。 如果否则有效的帐户没有权利从AD读取? 默认情况下,所有用户都具有读取访问权限,但可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 针对AD的绑定具有严重开销,AD架构caching必须在客户端(DirectoryServices使用的ADSI提供程序中的ADSIcaching)中加载。 这既是networking,又是AD服务器,消耗资源,而且对于像validation用户帐户这样的简单操作来说太昂贵了。 对于非例外情况,您依赖exception失败,并假设这意味着无效的用户名和密码。 其他问题(如networking故障,AD连接故障,内存分配错误等)则被误解为authentication失败。 .NET的DirectoryEntry类的使用是validation凭据的不正确方法的一个例子: 无效的方法1a – .NET DirectoryEntry entry = new DirectoryEntry("persuis", "iboyd", "Tr0ub4dor&3"); object nativeObject = entry.NativeObject; 无效的方法1b – .NET#2 public static Boolean CheckADUserCredentials(String accountName, String password, String domain) { Boolean result; using […]

将button添加到Windows 7login屏幕

我想为Windows 7用户实现自复位密码function。 login屏幕提示域用户应该显示一个忘记密码button,这将打开密码重置向导。 所以问题是如何添加一个命令button到标准的Windowslogin屏幕? 我知道在Windows XP中的GINA如下所述: 将命令button添加到Windowslogin屏幕 但是这个话题已经三年了,而在Vista / Windows 7中,微软提出了“Microsoft Windows Credential Provider”。

如何在ASP.NET中列出Windows用户和组?

我有一个ASP.NET网站项目,我需要列出我的Windows系统上的所有用户和他们的组。 我已将身份模拟设置为true,并在web.config中提供了admin的用户名和密码。 我从哪说起呢? 提前致谢。 更新: 我目前有以下代码 – var machine = new DirectoryEntry("WinNT://<IP ADDRESS>"); foreach (DirectoryEntry child in machine.Children) { // get the child's group(s). } 当我debugging时,我可以看到machine.Children中的用户列表。 我如何find这个用户所属的组?