当前位置: 首页 > 知识库问答 >
问题:

C#,针对active directory的身份验证

上官琦
2023-03-14

我正在使用PrincipalContext(来自System.DirectoryServices.AccountManagement命名空间)在应用程序中对Active Directory进行身份验证(我正在使用ValidateCredential函数)。

身份验证工作正常,当我在Active Directory中重置用户密码并强制他在下一次登录时更改密码时,我无法对用户进行身份验证。

我尝试改变身份验证的方式,我使用了ldapconnection(命名空间system.directoryservices.protocols),身份验证工作正常,当我重置用户密码并强制用户在下一次登录时更改密码时,我无法对该用户进行身份验证,如果我只是重置密码而不强制用户在下一次登录时更改密码,我可以对该用户进行身份验证。

我用不同的active directory测试了相同的场景,它在所有场景中都能工作。

当用户必须在下一个登录标志中更改密码时,Active Directory是否可能阻止我通过代码进行身份验证?

共有1个答案

巫马曜文
2023-03-14

您已经回答了您自己的问题,当在active directory中设置“用户必须在下一次登录时更改密码”时,用户只能通过Windows UI进行交互身份验证以设置新密码,而不能按照您要求的方式进行身份验证。

如果您想让它工作,您将需要添加功能到您的应用程序,以检测当一个用户改变了他们的密码,并提供方法,在验证之前这样做。这将需要处理过期的密码以及以您描述的方式强制更改密码的实例。

 类似资料:
  • 有人在springboot应用程序中找到了这样的工作示例吗? /auth控制器,用户在其中提供ActiveDirectory凭据(通过基本身份验证或POST json)并在提供有效AD凭据的情况下接收JWT令牌。不应涉及LDIF文件,Springboot应用程序将根据ldaps://ActiveDirectoryhost: 636endpoint验证凭据 /myapi控制器仅在步骤1(上图)中的有

  • 我正在尝试编写一些代码来连接到使用Siteminder身份验证的HTTPS站点。 我一直得到401。有什么想法吗? 我在这里读了一些不同的东西,但没有一个看起来真的很有帮助。我也在使用Fiddler/Firefox Tamper来窥探发生了什么。 这是到目前为止我在代码方面得到的信息:

  • Spring 4.1和Spring Security 3.2:我们实现了一个自定义身份验证提供程序,如果用户输入了错误的密码,它会抛出一个Bad凭据异常。当抛出Bad凭据异常时,将调用ProviderManager.authenticate方法,该方法将再次调用自定义身份验证中的身份验证方法。当抛出LockedException时,不会再次调用自定义身份验证提供程序中的Authenate方法。我们

  • 本文向大家介绍C#验证身份证的函数,包括了C#验证身份证的函数的使用技巧和注意事项,需要的朋友参考一下 这段C#代码主要是验证身份证的开头和身份证的格式和长度是否正确,没有按照身份证的编码规则进行严格验证 更为复杂些的验证方法: 方法三: 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 我有一个Spring MVC应用程序(使用3.0.5版本),需要使用Spring LDAP绑定到Active Directory,以便简单且仅验证用户的凭据。该应用程序托管在Linux服务器上,因此我需要一个跨平台的解决方案。并且应用程序不使用Spring Security性。 在此设置中实现用户身份验证的有效方法是什么?Active Directory支持FastBind控件(id=

  • 我是Spring安全的新手。我有一个Spring Boot应用程序,其中包含两种不同类型的实体。客户和员工。在员工中,我有普通员工,管理员和超级用户。由于我使用的是JPA,每个实体都有自己的。如何用建模我的,因为这是针对许多存储库进行验证的常见方法。在我的实体周围有什么我缺少的模型吗? 其他信息: 在我的设计中,我有两个实体。和。将具有、和等角色。客户是一个不同的实体。 是否有两个和两个Authe