php ldap-bind 密码过期

2024-04-12

我正在使用 adldap 插件连接到 Windows Server AD,但据我所知,我的问题是 php ldap_bind 。

当用户输入不正确的密码时,ldap_error(由 adldap 使用)返回的错误是“Invalid Credentials”。到目前为止,一切都很好。

当用户的密码过期或在 AD 中用户设置为在下次登录时更改密码(新用户、密码重置等)时,就会出现问题。在这种情况下,无论用户输入什么密码进行身份验证,ldap_error 都会返回“无效凭据”。这意味着我无法判断用户是否真的知道过期的密码。

有谁知道我如何解决这个问题?


由于我遇到了同样的问题,我进行了搜索并找到了解决方案 http://php.net/manual/en/function.ldap-bind.php.

define(LDAP_OPT_DIAGNOSTIC_MESSAGE, 0x0032)

$handle = ldap_connect('ldap://active.directory.server/');
$bind = ldap_bind($handle, 'user', 'expiredpass');

if (ldap_get_option($handle, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extended_error)) {
    echo "Error Binding to LDAP: $extended_error";
} else {
    echo "Error Binding to LDAP: No additional information is available.";
}

这会返回类似这样的内容:

绑定到 LDAP 时出错: 80090308:LdapErr:DSID-0C0903D0,注释:AcceptSecurityContext 错误,data 773, v2580

重要的部分是“数据”之后的代码,它代表错误代码 49 的 LDAP 子代码 https://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors.

您可以使用此函数解析子代码:

function parseExentedLdapErrorCode($message) {
    $code = null;
    if (preg_match("/(?<=data\s).*?(?=\,)/", $message, $code)) {
        return $code[0];
    }
    return null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php ldap-bind 密码过期 的相关文章

  • 日期函数的奇怪行为

    我今天在 StackOverflow 上遇到了这个问题 但没有得到答案 我的问题是 echo date Y m d strtotime 2012 september 09 output 2012 09 01 echo date Y m d
  • SQL查询:按字符长度排序?

    是否可以按字符总数对sql数据行进行排序 e g SELECT FROM database ORDER BY data length 我想你想用这个 http dev mysql com doc refman 5 0 en string f
  • 正则表达式检查确切的字符串是否存在,包括#

    新问题正如 Asaph 在上一个问题中所建议的 正则表达式检查确切的字符串是否存在 https stackoverflow com questions 2824291 regex to check if exact string exist
  • /bootstrap/start.php 中的 Laravel 错误:\Illuminate\Foundation\Application 未找到

    因此 我在开发服务器上安装了 Laravel php5 5 3 标准安装 安装了 mcrypt 并收到以下错误消息 Fatal error Class Illuminate Foundation Application not found
  • php paypal 服务器端 REST 集成失败

    我无法发布代码 错误等 因为 你需要至少 10 个声誉才能发布 2 个以上的链接 并且所有内容都包含很多链接 只是花了几个小时写了一篇完整详细的帖子 我在这里 和其他地方 读过类似的帖子 但它们没有帮助 我基本上遵循 https devel
  • 我应该将标签存储在文本字段还是单独的表中?

    我有一个表 其中的行如下所示 id path tags 1 pictures pic1 jpg car bmw 3 pictures pic2 jpg cat animal pussy 4 pictures pic3 png gun 基本上
  • PHP - SQLite 与 SQLite3

    我已经使用 SQLite 2 8 17 制作了一个 Web 应用程序 我现在才发现有一个 SQLite3 在制作 Web 应用程序时 它以某种方式逃避了我的注意 可能是由于缺少 php 函数的文档 我想知道 使用 SQLite3 比 SQL
  • 如何在 PHP 中对数组和数据进行排序?

    这个问题旨在作为有关 PHP 中数组排序问题的参考 人们很容易认为您的特定案例是独特的并且值得提出新问题 但大多数实际上只是此页面上的解决方案之一的微小变化 如果您的问题因与此问题重复而被关闭 请仅在您能解释为什么它与以下所有问题显着不同的
  • PHP三元运算符错误[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 三元运算符未按预期工作 https stackoverflow com questions 14214427 php ternary operator not working as expec
  • 如何正确转义反斜杠以匹配单引号和双引号 PHP 正则表达式模式中的文字反斜杠

    为了匹配字面上的反斜杠 很多人和PHP 手册 http www php net manual en regexp reference escape php说 总是三重转义吧 就像这样 Note 单引号和双引号 PHP 字符串具有反斜杠的特殊
  • 递归替换多维数组中特定键每次出现的值

    我有一个数组 其数组深度可能会有所不同 例如 array one gt array array something gt value array something2 gt value2 another gt anothervalue tw
  • \r 和 \n 在 PHP(和其他语言)中意味着什么?

    这些叫什么 r n 有解释它们的教程吗 它们分别是 回车 和 换行 通常在 Windows 上 您需要将两者一起表示行终止符 r n 而在大多数 全部 Unix 系统上 n 就足够了 See the 维基百科换行条目 http en wik
  • PHP preg_match_all 100 MB 文件

    我读到 preg match all 不是为解析大文件而设计的 但我需要这样做 我增加了 pcre backtrack limit 1000000000 pcre recursion limit 1000000000 我的 PHP memo
  • 使用composer create-project安装特定的laravel 5版本

    今天我尝试安装特定的 laravel 版本composer create project laravel laravel 5 1 8 your project name prefer dist 因为有些插件在5 1 9及以上版本有问题 但是
  • PHP 中的 GOTO 命令?

    我听说 PHP 计划引入 goto 命令的传言 它应该做什么 我尝试搜索了一下 但没有找到任何具有描述性的内容 我明白这不会是 GOTO 10 类似命令 They are not adding a real GOTO but extendi
  • PHP:检测USB设备

    我正在尝试使用 PHP 将用户名和密码存储到 USB 拇指驱动器上的文本文件中 因此 当用户返回使用 USB 密钥登录时 应该会打开一个弹出窗口 并提示输入用户名和密码 所以我的问题是如何使用 PHP 检测 USB 拇指驱动器 所以客户端或
  • 在php中将数组写入文件并获取数据

    我有一个数组 使用后如下所示print r Array 0 gt Array 0 gt piklu name gt piklu 1 gt Array 0 gt arindam name gt arindam 2 gt Array 0 gt
  • facebook og:image 不会从与 URL 相呼应的 php 文件中获取图像

    facebook OG 从回显 URL 获取图像 这可能吗 因为我包含了一个 php 文件 它将回显图像 URL 但是当我签入共享调试器时 内容为空 我的元标签 gt 和 php 文件
  • 在 PHP 中设置通知的 FCM 通道 ID

    我正在尝试使用 PHP 向 Android 设备发送 FCM 通知 我的代码适用于 Android O 之前的设备 在Android O中 我们还需要在请求中设置通道ID来接收通知 我不知道该怎么做 我已在应用程序中完成了必要的设置 并使用
  • 在仅包含键的字符串的嵌套数组中查找值

    我有一个数组 其中包含一些设置 基本上如下所示 defaults array variable gt value thearray gt array foo gt bar myvar gt array morevars gt moreval

随机推荐

  • 如何使用批处理文件从系统配置中删除环境变量

    我需要从客户端工作站中删除系统变量 我有 500 多个客户端 所以我想提供批处理文件给用户自己运行以删除系统变量 You may want to make these two permanent with setx but obviousl
  • 如何在Linux shell脚本中插入新行? [复制]

    这个问题在这里已经有答案了 我想在多个 echo 语句之间插入一个新行 我努力了echo hello n 但它不起作用 正在打印 n 我想要这样的期望输出 Create the snapshots Snapshot created 在之间插
  • 如何在不闪烁的情况下更新 Shiny 中的值?

    我每秒都会更新一个闪亮的文本输出 该文本输出是从 SQL 数据库读取的 这只需要一些时间 在仪表板中 我只想看看输出如何变化而没有花哨的动画 闪烁 是否可以在等待更新时删除动画并仅显示文本 这是一些代码示例 您可以在其中看到更新的闪烁 ui
  • C++ 对象将模板化函数和参数保留为成员以便稍后调用

    我有课Door实现一个方法LockCheck 和一个类Stove用一种方法BurnerCheck 我想要上课House作为构造函数参数Door LockCheck or Stove BurnerCheck以及给定函数的一组未知参数 Hous
  • Xcode 7 - 如何删除 ld: warning: -read_only_relocs 不能与 x86_64 一起使用

    我最近更新到了 Xcode 7 现在在编译时收到以下警告 ld 警告 read only relocs 不能与 x86 64 一起使用 我认为我没有更改构建设置或代码中的任何内容来创建它 有谁知道导致此警告的原因以及如何删除它 我已经为感兴
  • 用于组合垂直/内联字段的 Bootstrap 复杂表单布局

    我对 Bootstrap 很陌生 但我的技能增长很快 也很欣赏它 我需要构建一个相当复杂的页面 其中包含大量表单元素 包括多个地址填写组件 我在这里附上了我想要的基本设计的图像 但似乎无法使用我可用的基本表单设计元素来实现它 我觉得我的方法
  • 获取WPF中控件的可见大小

    我有一个未完全显示的控件 通过减小窗口大小 但该控件的 ActualWidth 和 RenderSize DesiredSize 仍然显示其总大小 我编写了下一个代码 但它忽略了窗口的滚动条宽度 看起来很丑 也许有一种方法可以以更优雅的方式
  • 如何使用javascript浏览器端获取显卡驱动程序名称?

    我想得到一个像这样的字符串 英特尔开源技术中心 Mesa DRI 英特尔 R 高清显卡 520 Skylake GT2 仅在浏览器上使用 javascript 我知道有一个图书馆augur io https www augur io dev
  • 如何从多个类扩展状态

    请注意 了解集换式卡牌游戏 万智牌 聚会 将是一个优势 抱歉 我不知道如何更容易地表达它 我使用时遇到了一个问题Java 我将描述如下 我有一个名为 Card 的基本类 具有以下所有属性 public class Card String N
  • Android Twitter 出现 oauth-signpost 错误授权失败(服务器回复 401)

    你好 我尝试将 Twitter 与 OAuth 结合使用 但收到此异常 授权失败 服务器回复 401 如果消费者密钥不正确或签名不匹配 则可能会发生这种情况 我正在使用这个示例http code google com p oauth sig
  • 网络提供商无法在 Android 中运行

    我必须制作一个Android应用程序 在其中我需要找到用户的当前位置 为此 我首先使用 GPS 提供商 但如果它不可用 我会求助于网络提供商 现在 我的手机上出现过连网络提供商都无法工作的情况 并且声明 网络启用 lm isProvider
  • 自动删除 HTML 和 Javascript 注释

    我想自动删除 HTML 和 JavaScript 注释 我在服务器上使用 ant 脚本进行部署和 JSF 有哪些选项或工具可用 提前致谢 用正则表达式替换混合 HTML 和 JavaScript 的文件中的注释是有风险的 然而 单独地 你可
  • 状态更改时不调用 ngrx 存储订阅

    我正在使用我的服务中定义的虚拟数据创建一个应用程序 在一个组件中 我具有以下删除产品的功能 removeItem productId string this cartService removeItem productId 以及服务如下 r
  • 构建配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的

    我想将 jitpack io 添加为我的 gradle 文件中的存储库 这是我的 gradle 根文件 buildscript repositories google mavenCentral dependencies classpath
  • docker 内 alpine 上的节点画布

    我正在尝试安装节点画布 https github com Automattic node canvas https github com Automattic node canvas 在 docker 内的 Alpine 上 这些是我的 D
  • 针对存储在 java.util.List 中的键/值对运行一系列论坛

    假设我有一个包含如下组件的列表 id 1 name Displacement value 200 id 2 name Time value 120 id 3 name Mass value 233 id 4 name Acceleratio
  • YouTube get_video_info 引发限制错误

    我已经为 joomla 创建了 是的另一个 YouTube 播放器模块 在模块后端我使用了来自的代码这个答案 https stackoverflow com a 5151862 4708062显示视频标题 不幸的是 对于大多数视频 ID g
  • 具有更好性能的 pyspark 枢轴替代品

    以下是我的输入数据集 df spark createDataFrame 0 CattyCat B2K B 0 CattyCat B3L I 0 CattyCat B3U I 0 CattyCat D3J C 0 CattyCat J1N H
  • R sp:多边形面积单位

    我使用 R 读取形状文件 以使用 sp 包分析油田的多边形 使用 WGS84 的经纬度 及其各自的区域 不幸的是我不知道面积输出的单位 例如 面积产出平均为 0 85 单位 最大 4 34 这可能不是以平方公里为单位 因为这对于油田来说太小
  • php ldap-bind 密码过期

    我正在使用 adldap 插件连接到 Windows Server AD 但据我所知 我的问题是 php ldap bind 当用户输入不正确的密码时 ldap error 由 adldap 使用 返回的错误是 Invalid Creden