0

如何使用 asp.net 在活动目录中获取用户的“最小密码年龄”?
使用目录服务或AspNetActiveDirectoryMembershipProvider

例如:

from below line, I can get lastname of user. 
string lastName = objDirectoryEntry.Properties["sn"].Value;

以下是用户属性列表。我在所需的属性“最小密码年龄”中找不到
http://www.kouti.com/tables/userattributes.htm

注意:我正在考虑使用 Asp.net

编辑摘要------------------------
当我尝试使用目录服务更改用户密码时出现以下错误或 AspNetActiveDirectoryMembershipProvider(它是默认会员提供程序)


密码不符合密码策略要求。检查最小密码长度、密码复杂性和密码历史要求


用户创建和更新成功(更新字段,如名字、姓氏等)。我同时使用目录服务和 AspNetActiveDirectoryMembershipProvider 来创建和更新用户,但是当我尝试更改密码时出现问题

例如:我用密码 anc1236 创建了用户!成功创建
,现在将密码更新为 xyyz4562@ 并出现错误

下面是我用来更改密码的代码
objMembershipUser.ChangePassword(oldPassword, newPassword)
我也尝试直接使用目录服务并得到同样的错误

4

1 回答 1

2

我认为您正在查看错误的对象。

在 Active Directory 中使用用户帐户时,通常需要参考域范围的帐户策略。例如,最短和最长密码使用期限和最短密码长度等策略以及锁定策略是在域级别确定的,并应用于域中的每个用户对象。所有值都直接存储在域根对象中(不是在 RootDSE 中,而是在 RootDSE 中的 defaultNamingContext 属性指向的对象中),作为一组属性,例如 maxPwdAge、minPwdLength 和 lockoutThreshold。此外,密码复杂性规则编码在 pwdProperties 属性中的枚举值中。这些值在大多数域中往往是相当静态的,因此我们通常希望在每次程序执行时只读取一次这些值。为了使策略值易于使用,我们在清单 10.7 中显示了域帐户策略的包装类,它将所有值转换为方便的 .NET 数据类型,例如 TimeSpan。还包括用于密码策略类型的特殊 .NET 枚举类型。我们无法在书中包含所有类属性,因为这会占用太多空间,但我们将在本书的网站上提供完整的类。在演示如何确定帐户的锁定状态以及查找密码过期的帐户时,我们将在以后的讨论中参考此示例。还值得注意的是,这些策略属性中的任何 LargeInteger 值都存储为负值。我们选择将它们反转为正值,因为以这种方式考虑它们更容易。选择使用这些属性的开发人员应牢记这一点,因为如果不加以考虑,它将在以后抛出计算。

看看这个页面的例子

于 2012-05-01T20:26:25.703 回答